繁体   English   中英

REST如何在URI中传递空路径参数?

[英]REST how to pass empty path parameter in the URI?

我正在开发一个安静的webapp。 在这里,我采用的参数是userid和orderid。

userid可以为null
URI是@Path("api/user/userid/order/orderid")我的方法是,

void add(@PathParam("userid") String userId, @PathParam("orderid") String orderId);

我想在URI中为userId传递null值。

我试过api/user//order/1234 但在这种情况下, userid获取orderId的值(即1234, orderIdnull 。(这是错误的)

我也尝试将路径更改为@Path("api/user/userid: .*/order/orderid") 然而与之前的结果相同。

解决这个问题的其他方法可能是,使用@QueryParam进行userid或为userid null创建另一种方法。

但我想知道是否有办法将userId作为PathParameter而不是QueryParam并将userid的值传递为null

将URL参数设置为null不是有效的情况。

发布到URL api/user/userid/order/orderid是说“为该用户创建订单”。 GET到同一个URL会说“检索我这个用户的特定订单”。 两者都在用户的上下文中。

要在用户的上下文之外进行订单创建或检索,只需删除URL的这两部分...

api/order/orderid

这将允许您创建和获取客户范围之外的订单。 这也适用于用户的上下文。 如果您在没有用户ID的情况下发布订单,则无人问津,但可以指定一个。 如果您获得订单,它不应该关心它是哪个客户,除非您的订单ID在客户中不是唯一的,但这可能不是一个好主意,但这是一个单独的讨论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM