Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将@PathParams与PUT REST Api一起使用_Java_Rest_Put - Fatal编程技术网

Java 将@PathParams与PUT REST Api一起使用

Java 将@PathParams与PUT REST Api一起使用,java,rest,put,Java,Rest,Put,我正在创建一个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)) {

我正在创建一个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
    是否是一种好的做法

  • 优点和缺点是什么


  • 在任何类型的RESTful API资源处理程序中都可以使用
    PathParam
    。但是,PUT方法不适合这里,因为它违反了基本的REST原则

    REST假设特定的HTTP方法(如PUT、GET、DELETE、POST)对应于需要对数据执行的特定操作。 例如,如果要检索数据,需要使用GET,而删除是删除数据所需的

    在你的特殊情况下,我会选择

    DELETE /teams/{teamName}
    

    我建议你至少承认自己对基本REST原则有了更好的理解。

    1。在PUT调用中使用PathParam是可以的。2.对于删除操作,应使用带PathParam的DELETE,而不是PUT。3.您不应该在路径中使用诸如“delete”之类的动词。4.这取决于teamName是否是唯一标识符-如果是,那么就可以了,如果不是-您应该在Pathparam中使用id。是的,大多数情况下您应该(会),因为PUT意味着存在一个资源,通常具有唯一标识符。
    @PathParam
    表示标识符是可变的。
    @使用
    注释指定服务器希望在请求正文中(即不在URL或查询参数中)使用哪种类型的数据。如果您的端点只需要
    @PathParam
    ,那么您就不需要
    @消费
    ,因为您并没有读取正文中的任何内容。