我已为相同的实体创建和更新api调用。如果用户发送没有对象ID的PUT
请求,则控制器将其作为POST
请求接受并创建新对象。
我该如何防止这种情况?
@POST
@Consumes({MediaType.APPLICATION_XML})
@Produces({MediaType.APPLICATION_XML})
public Response create(Entity entity){}
@PUT
@Path("/{id}")
@Consumes({ MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_XML })
public Response update(@PathParam("id") int id,Entity entity){}
有没有办法让更新需要请求参数?这也可以解决这个问题。
答案 0 :(得分:1)
从@Path
添加RegEx模式。
语法:
@Path("/{" variable-name [ ":" regular-expression ] "}")
示例:
@Path("/{id: <replace_with_reg_exp>}")