2017-06-01 73 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,你就會有在必要時施放。