类中的多个@POST标记

时间:2016-01-08 20:52:44

标签: java rest post

是否可以在类/接口中包含多个@POST标记。如果这段代码存在问题,请告诉我,如果是这样,为什么:

@Produces("application/json")
@Consumes("application/json")
@Path("/user/raflets/{appId}/admin/batch/{batchId}/instance")
public interface RafletJobInstanceRestService {

@GET
@Path("/{instanceId}")
JobInstanceBean getJobInstanceDetails(@Context UriInfo uriInfo,
        @PathParam("appId") int appId, @PathParam("batchId") int batchId,
        @PathParam("instanceId") int instanceId);

@POST
@Path("/{instanceId}")
JobInstanceBean updateInstance(@Context UriInfo uriInfo,
        @PathParam("appId") int appId, @PathParam("batchId") int batchId,
        @PathParam("instanceId") int instanceId,
        JobInstanceBean batchInstance);

@POST
@Path("/clone/{instanceId}")
JobInstanceBean cloneInstance(@Context UriInfo uriInfo,
        @PathParam("appId") int appId, @PathParam("batchId") int batchId,
        @PathParam("instanceId") int instanceId,
        JobInstanceBean batchInstance);
}

我认为,因为每个帖子都有不同的路径,所以不会有问题,对吗?

1 个答案:

答案 0 :(得分:2)

是的,有多个@POST注释可以。对于这个问题,可以有多个@GET注释。它们只是指定API端点应响应的HTTP谓词。

在相关说明中,如果您的API是通过HTTPS提供的,并且您在这些POST请求中发送敏感数据,则可能需要考虑将此数据作为POST参数发送到标头而不是URL中。 URL中的API端点和参数仍然可见,但您的敏感数据将在标头中加密。为此,您只需将其从服务路径中删除,然后使用@FormParam而不是@PathParam检索它们。