gpt4 book ai didi

java - 在 JAX-RS 的响应中将自定义错误代码返回给客户端

转载 作者:搜寻专家 更新时间:2023-11-01 04:06:00 24 4
gpt4 key购买 nike

我是 JAX-RS 的新手并且还在学习它,所以我的问题可能有点天真所以请耐心等待 :)

我一直在研究“http 响应的错误代码”的各种 SO 问题。我发现只要不想迂腐,他可以在响应中返回 4xx 状态码。

我也浏览过这个链接 RFS 2616还有 W3

我想知道除了标准 HTTP 响应状态代码之外,是否有返回自定义错误代码的通用做法。

例如,如果在 post 请求中通过 userid 获取用户信息,如果 userid 无效/不存在则返回错误。在这种情况下,HTTP 状态 422 听起来很空闲。但是,如果需要详细的错误描述,可以自定义错误,如 40xx,其中 xx 是除 http 错误之外的值返回给客户端。

同样可以定义 40xx 并返回给客户端吗? (在请求中有正确​​的语法)

4001 - 用户 ID 无效

4002 - 帖子 ID 无效

等..

或者我应该返回 4xx 状态代码并在响应正文中添加自己的代码以获取更多错误详细信息?

最佳答案

如果您正在开发不会公开的内部系统,那么您可以使用自定义代码。另一方面,如果您想向公众公开某些 API,最好坚持使用标准代码并在状态原因短语或实体主体中提供更多信息。

在 JAX-RS 中,您可以创建自己的状态(或覆盖标准状态的原因短语),例如:

public static class CustomBadRequestType implements Response.StatusType {

@Override
public int getStatusCode() {
return 400;
}

@Override
public String getReasonPhrase() {
return "My Reason";
}

@Override
public Response.Status.Family getFamily() {
return Response.Status.Family.CLIENT_ERROR;
}
}

然后将状态设置为Response.ResponseBuilder :

Response.status(new CustomBadRequestType()).build();

关于java - 在 JAX-RS 的响应中将自定义错误代码返回给客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21276988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com