使用PathParam和JSON对象的Jersey POST操作

使用PathParam和JSON对象的Jersey POST操作,post,jersey,Post,Jersey,根据设计,GET操作应仅用于只读操作。然而,我正在寻找一种可行的方法来实现下面的操作。实现一个POST操作,如下所述 POST/my store/order/D:其中D是客户下订单的日期 请求:POST/my store/order/14 { “客户”:“XYZ”, “命令”:{ “项目1”:2 } } 我尝试使用下面的函数实现 @Path("/D") @POST @Consumes({ MediaType.TEXT_PLAIN, MediaType.APPLICATION_JSON }) @P

根据设计,GET操作应仅用于只读操作。然而,我正在寻找一种可行的方法来实现下面的操作。实现一个POST操作,如下所述

POST/my store/order/D:其中D是客户下订单的日期

请求:POST/my store/order/14 { “客户”:“XYZ”, “命令”:{ “项目1”:2 } }

我尝试使用下面的函数实现

@Path("/D")
@POST
@Consumes({ MediaType.TEXT_PLAIN, MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_JSON })
public Response submitOrder(@PathParam("D") int elapsedDays, @Context UriInfo     uriInfo,     Order orderInfo){
..........
}
但上述实现似乎不起作用。当我尝试使用MyEclipse REST explorer测试实现时,它不提供按顺序传递对象的选项,只允许使用“D”参数。但是,如果删除了@PathParam和@Path,那么它就可以正常工作,即允许使用JSON Order对象

但是,要求在POST请求中将天数作为路径参数传递,并将Order对象作为JSON输入传递

寻求关于实施方法和设计方法的建议


首先,要感谢您,您的路径应该如下配置:

@Path("/{D}")

我假设您的扩展省略号表示您有一些表示订单反序列化的方法参数。

谢谢Vidya。正如我用@Path(“/{D}”)选项编辑的一样。MyEclipse REST资源管理器不再要求输入JSON对象,只允许输入方法参数。