gpt4 book ai didi

集合的 REST API 帖子的 JSON 响应

转载 作者:行者123 更新时间:2023-12-04 02:16:37 24 4
gpt4 key购买 nike

在使用 REST API 响应 PUT 或 POST 命令时,我发现有关最佳实践的细节非常少。

假设该示例是该 API 用于电影商店中的电影列表,并且具有以下内容:

  • 获取 api/电影
  • 获取 api/电影/{id}
  • PUT api/电影/
  • PUT api/电影/{id}
  • POST api/电影/
  • POST api/电影/{id}

您可以在其中 PUT 或 POST 单个或集合。我将两者都包括在内,因为我不想讨论 PUT 与 POST,并且希望获得有关最佳实践的答案,尤其是在响应错误方面。

如果处理单个项目,我可以轻松返回 HTTP 状态代码和响应,但是在处理集合的 POST 和 PUT 时应该做什么,尤其是在非幂等方法中?

我对退回包裹的想法如下:

{
"version": "1.0"
"status": 200,
"errors": [
// List of object id's, and errors
]
"data": [
// List of movies POSTed or PUT
]
}

对于每个失败的特定 ID 都会生成错误,但我不确定它是否通过了关于整体状态和 HttpStatus 的嗅觉测试。如果部分集合失败或单个实体失败,我是否应该返回另一个状态?

最佳答案

通常在 REST 中一个操作需要完全成功或完全失败。像这样的操作应该是原子的和幂等的。

所以您要问的只是 REST 可以为您做的事情之外。来自马口:

"If you find yourself in need of a batch operation, then most likely you just haven’t defined enough resources."

http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven#comment-743

那这句话是什么意思?这并不意味着你不能有一个资源代表与其他几个资源相同的数据(例如:你的集合),但如果你正在使用 PUT 来更新它,你仍然是 100%替换它的内容。不是部分。

关于集合的 REST API 帖子的 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33377927/

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