这个SO answer彻底介绍了在RESTful POST方法中传递和访问参数的所有可能方法。
使用多种方法是一种反模式吗?
例如,你会考虑以下方法在POST HTTP方法的内容体中传递JSON对象,还使用路径参数和反模式吗?
@POST
@Path("/modifyPerson/{idx}")
@Consumes(MediaType.APPLICATION_JSON)
public Response modifyPerson(Person newPerson, @PathParam("idx") int i) {
// ...
}
我可以创建一个更丰富的类(例如PersonWithIdx
),它结合Person
和idx
整数参数,然后传递它而不需要求助于路径参数。上面代码买的唯一一件事就是它不需要创建这个额外的类。但听起来不错吗?
答案 0 :(得分:1)
使用多种方法是一种反模式吗?
没有
例如,你会考虑以下方法在POST HTTP方法的内容体中传递JSON对象,还使用路径参数和反模式吗?
没有
如果您拥有大量共享相同支持实现的资源,那么使用UriTemplate来识别这些消息如何使用特定的HTTP请求是合适的。
我可以创建一个更丰富的类(例如
PersonWithIdx
),它结合Person
和idx
整数参数,然后传递它而不需要求助于路径参数。上面代码买的唯一一件事就是它不需要创建这个额外的类。但听起来不错吗?
从URI中取出标识符以将它们打包到请求正文中听起来更像是RPC,而不是像REST那样。