2017-06-01 57 views
0

我的工作与Java星火建立了一个REST服务器上,我想知道有关定义路径参数以下两种语法之间的区别,使用:path-parameter VS {path-parameter}Java Spark中`:path-param`和`{path-param}`有什么区别?

path("/containers/:container-id",() -> { ...}) 

path("/shipments/{shipment-id}",() -> { ... }) 

在一个点上,查询时路径参数在路径/{handler-id}(它嵌套在/v1/handlers内),我必须将:格式的语法更改为{}格式,以便在查询参数handler-id时让Spark不返回null

那么这两种语法有什么区别?

回答

0

在路径中定义参数的唯一语法是:path-param

查询此参数的值由String paramVal = request.params(":path-param")完成(查询时冒号是可选的)。

或者,如果你想获得的所有参数的名称,值的地图,你会去request.params();

我不知道为什么你查询你的PARAM时得到了空,但我猜你使用request.queryParams(":path-param");。但是,此API用于不查询您想要的路径参数,而是查询查询参数,这些参数是路径形式的参数,如/api/users?userId=1234

摘要

Path Definition URL in browser    Query 
--------------- ---------------------------- ----------------------------------- 
/api/users/:id <host>/api/users/1234   request.params("id") ==> 1234 
/api/users  <host>/api/users?id=1234  request.queryParams("id") ==> 1234 
  • 注意,返回的值始终是String,你就会有在必要时施放。