尝试使用封装的http响应代码构建REST服务

时间:2013-05-27 06:44:30

标签: java jax-rs java-ee-5

我目前正在尝试使用完全封装http响应的Java / EE(5)构建REST Web服务,因此每个请求都应该返回响应代码200(OK),并且应该如下所示:

{   
    "msg" : { // imagine some datastructure here },
    "error" : {
        "code" : 200 // http response code
        "status" : "OK" // some string defining this
    }
}

我首选的框架是JAX-RS(我们计划尽快迁移到EE6,因此迁移是开发时的主题之一),但JAX-RS可以做到这一点吗?

1 个答案:

答案 0 :(得分:2)

使用JAX-RS始终返回200 OKContent-Type: application/json的最简单方法:

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;

@Path("/not-rest")
@Produces("application/json")
public class NotRestBean {

    @GET
    public Response getSoapStyle() {
        String json = "{}"; // build your response here
        return Response.ok(json).build();
    }
}

同样,我不建议这样做。 REST的核心部分是统一接口,其中包含适当的响应代码。