gpt4 book ai didi

rest - 补丁 http 方法的 REST full api 应该如何响应?

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

我在服务器上有一个订单资源。网址看起来像 http://example.net/order/1上面 url 上的 get 方法将返回整个订单对象,如

    {
"orderNo": "1",
"status": "order place",
"orderTimestamp": "2018-11-22 14:28:12",
"invoiceAddress": {
"salutation": "M",
"firstName": "Dieter",
"lastName": "Wolf",
"companyName": "",
"street": "Michaelkirchstr.",
"houseNo": "16",
"zipCode": "31604",
"city": "Raddestorf",
"countryIsoCode": "DEU",
"phone": "05763 82 60 80",
"email": "DieterWolf@armyspy.com"
},
"deliveryAddress": {}
"items": [
{
...
}
],
"returnItemsDetails": []
}

现在我希望在同一个 api 上提供补丁方法,以便可以更新/添加一些细节,如送货地址。要更新订单详情,可以在同一订单网址上使用补丁 http 方法请求以下请求

{
"deliveryAddress": {
"deliveryType": "CUSTOMER",
"salutation": "M",
"firstName": "Dieter",
"lastName": "Wolf",
"companyName": "",
"street": "Michaelkirchstr.",
"houseNo": "16",
"zipCode": "31604 ",
"city": "Raddestorf",
"countryIsoCode": "DEU",
"phone": "05763 82 60 80",
"email": "DieterWolf@armyspy.com"
}
}

我的问题是根据 REST 标准响应补丁请求应该有什么?或者是否有任何文档可以找到有关 REST api 的响应数据和格式的信息。

最佳答案

My question is what should be there in response of patch request according to REST standard? or Is there any document where I can find about response data and format for REST api.

根据RFC 5789成功的响应可以返回任何成功代码(即 200 或 204)。理想情况下,它还应该包含一个 ETag header ,以允许客户端跟踪当前版本的最终连续请求(这基本上用于对资源状态的乐观锁定)。

该规范提供了一个 204 No Content 示例作为补丁,粗略地说,由客户端计算的一组指令组成,服务器应应用这些指令将目标资源转换为所需的状态。所以客户端事先知道最终结果应该是什么样子,因此服务器不需要通知客户端。

如果您想返回 200 OK 响应,我建议按顺序返回客户端发出的 Accept 请求 header 建议的表示(内容类型协商)以避免强制客户端某些预定义的媒体类型格式,它可能无法理解或推断出更多的可能性。

如果您需要对资源应用不可预测的更改,即基于在服务器端完成的一些计算或将有效负载包含到某个预定义元素(可能在您的示例中完成),RFC 5789 明确指出 应该使用 POST 代替 PUTPATCH。进一步注意,您可以支持 application/merge-patch+json 媒体格式及其在 RFC 7386 中定义的语义。将这样的(示例)主体作为有效负载发布到 PATCH 请求,并可能实现您想要的结果。

关于rest - 补丁 http 方法的 REST full api 应该如何响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54666244/

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