使用多种方法在RESTful POST中发送信息是一种反模式

时间:2016-07-25 16:56:39

标签: java web-services rest jersey

这个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),它结合Personidx整数参数,然后传递它而不需要求助于路径参数。上面代码买的唯一一件事就是它不需要创建这个额外的类。但听起来不错吗?

1 个答案:

答案 0 :(得分:1)

  

使用多种方法是一种反模式吗?

没有

  

例如,你会考虑以下方法在POST HTTP方法的内容体中传递JSON对象,还使用路径参数和反模式吗?

没有

如果您拥有大量共享相同支持实现的资源,那么使用UriTemplate来识别这些消息如何使用特定的HTTP请求是合适的。

  

我可以创建一个更丰富的类(例如PersonWithIdx),它结合Personidx整数参数,然后传递它而不需要求助于路径参数。上面代码买的唯一一件事就是它不需要创建这个额外的类。但听起来不错吗?

从URI中取出标识符以将它们打包到请求正文中听起来更像是RPC,而不是像REST那样。