如何在rest api中返回create方法的结果以及201状态码?在此代码中,状态代码为 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();
}
}
您可以使用
ResponseBuilder.status(int)
或 Response.status(int)
方法并发送:-
Response.ok(student).status(201).build(); // 201 is the response code
或
Response.status(201).ok(student).build(); // 201 is the response code
有点晚了,但如果其他人应该偶然发现这个问题......这里提供的答案使用created方法似乎更合适,因为它使用设计用于在创建资源时返回响应的方法,并且不硬编码响应代码也不需要再次调用来设置位置标头。
摘录自该答案:
来自 响应 API
已创建公共静态 Response.ResponseBuilder(URI 位置) - 为已创建的资源创建一个新的ResponseBuilder,设置位置 使用提供的值的标头。
例如
Response.created(createdURI).build()
我建议将 ResponseBuilder 与可读的 Status 枚举一起使用:
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();