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

标签 java jax-rs java-ee-5

我目前正在尝试使用 Java/EE(5) 构建一个完全封装 http 响应的 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 可以做到这一点吗?

最佳答案

使用 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 的核心部分是统一接口(interface),其中包括正确的响应代码。

关于java - 尝试使用封装的http响应代码构建REST服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16767679/

相关文章:

jakarta-ee - 谁能用更简单的术语告诉我 "Java EE stack"是什么意思

jsf - 如何使用 j_security_check 获取已连接用户的数量及其角色?

java - AWS Corretto 示例应用程序源

java - JAX-RS 2.0 通过@NameBinding 注释过滤参数

java - OSGI环境中单例的迁移解决方案

java - 无法使用 Jackson 将下划线大小写转换为驼峰大小写

jax-rs - 解码 XML 输入流时出现 SAXNotRecognizedException

java - 父类(super class)对象还是子类对象?为什么?

java - 添加多行注释时如何在 Eclipse 中禁用自动星号(插入星号)?

java - 如何将日期作为参数传递给 jasper 报告