gpt4 book ai didi

带有 HTTP 响应代码的 REST API 响应

转载 作者:可可西里 更新时间:2023-11-01 16:51:22 25 4
gpt4 key购买 nike

我正在创建一个 REST API,但我遇到了关于 HTTP 响应的困境。我在这里只发现了 1 个线程,看起来像同一个问题,但我对所选答案不是很清楚。

例如,我有一个 API 端点,用于检查是否存在具有 X 电子邮件地址的用户。所以可以有 3 个结果。

1- X exists (200)
2- X does not exist (404)
3- X has invalid syntax etc. (400)

现在当 web 服务器返回时,它是否总是返回代码 200 但响应正文应该包含与错误相关的错误代码?还是 http 服务器也应该返回带有代码 + 正文的响应才会有 API 响应?

问题在于,从 HTTP 的角度来看,请求得到了完美的满足。所以在我看来,响应代码应该是 200 但 API 响应应该包括与操作结果相关的代码。这是要走的路吗?例如 HTTP 响应 200 + JSON 响应内容错误 404 如果用户不存在?

您知道 FOSRestBundle 等社区包是如何处理的吗?

谢谢!

最佳答案

这取决于您希望如何在您的服务中实现 HTTP 响应代码的客户端要求。如果您希望您的服务遵守 RESTful API 约定,那么使用 200 表示成功响应,400 表示错误请求,404 表示未找到对象是正确的方法。

我想补充一点,在后端服务中添加客户端逻辑不是一个好主意,因为它会将您的后端与特定客户端紧密绑定(bind)。如果您想使用相同的 API 服务来处理对 iOS 客户端的请求,那么您需要以与 Android 客户端相同的方式编写 iOS 客户端。因此,最好在客户端保留特定于客户端的逻辑,并让您的 REST API 服务尽可能轻便。

关于带有 HTTP 响应代码的 REST API 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49719271/

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