create方法返回结果及201状态码

问题描述 投票:0回答:3

如何在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();
          }
}
java web-services rest
3个回答
4
投票

您可以使用

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

2
投票

有点晚了,但如果其他人应该偶然发现这个问题......这里提供的答案使用created方法似乎更合适,因为它使用设计用于在创建资源时返回响应的方法,并且不硬编码响应代码也不需要再次调用来设置位置标头。

摘录自该答案:

来自 响应 API

已创建公共静态 Response.ResponseBuilder(URI 位置) - 为已创建的资源创建一个新的ResponseBuilder,设置位置 使用提供的值的标头。

例如

Response.created(createdURI).build()

1
投票

我建议将 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();
© www.soinside.com 2019 - 2024. All rights reserved.