返回create方法和201状态代码的结果

时间:2015-07-31 13:55:54

标签: java web-services rest

如何在rest api和201状态代码中返回create方法的结果?在此代码中,状态代码为200,如何将其更改为201?

    Path("/student")    
    public class MyRestApi{

    @Path("/create")
    public Response create(){
           Student student = new Student;
           //insert in data source
           Return Response.ok(student).build();
          }
}

3 个答案:

答案 0 :(得分:3)

您可以使用ResponseBuilder.status(int)Response.status(int)方法并将其发送为: -

Response.ok(student).status(201).build(); // 201 is the response code

OR

Response.status(201).ok(student).build(); // 201 is the response code

答案 1 :(得分:1)

我会建议ResponseBuilder和可读的状态枚举:

import javax.ws.rs.core.Response.Status;
[...]
return Response.status(Status.CREATED).entity("created the student" 
    + "- this is your customized message to the caller").build();

答案 2 :(得分:0)

有点迟了但如果其他人应该偶然发现这个问题......使用answer supplied herecreated method似乎更合适,因为它使用的方法用于在创建资源时返回响应既不硬编码响应代码也不需要另外调用来设置Location头。

该答案的摘录:

  

来自Response API

     

public static Response.ResponseBuilder created(URI location) -   为创建的资源创建新的ResponseBuilder,设置位置   标头使用提供的值。