我正在使用Java构建一个REST服务器,我想知道使用:path-parameter和{path-parameter}定义路径参数的以下两种语法之间的区别
path("/containers/:container-id", () -> { ...} )
path("/shipments/{shipment-id}", () -> { ... } )在查询路径/{handler-id} (嵌套在/v1和/handlers中)上的路径参数时,有一段时间我不得不将语法从:表单更改为{}表单,以便在查询handler-id参数时使Spark不返回null。
那么这两种语法有什么区别呢?
发布于 2017-06-01 18:51:07
在路径中定义参数的唯一语法是:path-param。
查询此参数的值由String paramVal = request.params(":path-param")完成(查询时冒号是可选的)。
或者,如果您想获得一个包含所有参数名称的映射--值,则为request.params();
我不知道为什么在查询param时获得null,但我猜您使用了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") ==> 1234String,如果需要,您将不得不进行强制转换。https://stackoverflow.com/questions/44301522
复制相似问题