gpt4 book ai didi

java - Java Spark 中的 `:path-param` 和 `{path-param}` 有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:03:30 25 4
gpt4 key购买 nike

我正在使用 Java Spark 构建 REST 服务器,我想知道以下两种用于定义路径参数的语法之间的区别,使用 :path-parameter vs {路径参数:

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

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

有一次,在路径 /{handler-id} 上查询路径参数时(嵌套在 /v1/handlers),我不得不将语法从 : 形式更改为 {} 形式,以使 Spark 在查询时不返回 null handler-id 的参数。

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

最佳答案

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

查询这个参数的值是通过String paramVal = request.params(":path-param")来完成的(查询时冒号是可选的)

或者,如果您想获得包含所有参数名称-值的映射,您可以使用 request.params();

我不确定您为什么在查询参数时得到 null,但我猜您使用了 request.queryParams(":path-param");。但是这个API不是用来查询你想要的path-params,而是查询一个query params,它是/api/users?userId=1234<这样的path形式的参数.

总结

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,如果需要,您必须进行强制转换。

关于java - Java Spark 中的 `:path-param` 和 `{path-param}` 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44301522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com