【发布时间】:2017-08-07 06:22:14
【问题描述】:
我正在创建一个 REST 服务并且我有以下 API -
@PUT
@Path("/delete/{teamName}")
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
public Response delete(@PathParam("teamName")String teamName) {
if (db.delete(teamName)) {
return Response.status(200).build();
}
return Response.status(400).build();
}
此 API 接受 PathParam 到 delete 的团队名称。这是一个PUT 电话。
我的问题是 -
在 PUT 调用中使用
@PathParams是一种好习惯吗?有什么优点和缺点?
【问题讨论】:
-
1.在 PUT 调用中使用 PathParam 是可以的。 2. 您应该使用 DELETE 和 PathParam 而不是 PUT 进行删除操作。 3. 你不应该在你的路径中使用像'delete'这样的动词。 4.这取决于teamName是否是唯一标识符 - 如果是,那么没关系,如果不是 - 你应该在Pathparam中使用id。
-
是的,大多数时候你应该(would),因为 PUT 意味着存在的资源,通常具有唯一标识符。
@PathParam表示标识符是可变的。 -
@Consumes注释指定服务器在请求正文中期望的数据类型(即不在 URL 或查询参数中)。如果您的端点只需要@PathParam,那么您就不需要@Consumes,因为无论如何您都没有阅读正文中的任何内容。