如何在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();
}
}
答案 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 here的created method似乎更合适,因为它使用的方法用于在创建资源时返回响应既不硬编码响应代码也不需要另外调用来设置Location头。
该答案的摘录:
public static Response.ResponseBuilder created(URI location) - 为创建的资源创建新的ResponseBuilder,设置位置 标头使用提供的值。