gpt4 book ai didi

java - REST API 设计查询 2

转载 作者:行者123 更新时间:2023-11-30 07:42:18 25 4
gpt4 key购买 nike

POST 操作是否应该一次只支持创建一个资源或者它可以接受在单个 POST 请求中创建的资源集合?

最佳答案

来自definition of POST in RFC2616 ,可以推断只有一个资源应该(如 RFC 中定义的)被创建。首先,该部分在整个段落中都在谈论“创建的实体”(单数)。更明显的部分是通过 POST 创建新资源时的推荐响应:

If a resource has been created on the origin server, the response
SHOULD be 201 (Created) and contain an entity which describes the
status of the request and refers to the new resource, and a Location
header (see section 14.30).

据我所知,您只能在位置 header 中返回一个位置。

前面提到的 RFC2616 已经过时(感谢@Eric Stein)。 updated semantics of POST can be found in RFC7231 .同样,推荐的响应提示语义:

If one or more resources has been created on the origin server as a
result of successfully processing a POST request, the origin server
SHOULD send a 201 (Created) response containing a Location header
field that provides an identifier for the primary resource created
(Section 7.1.2) and a representation that describes the status of the
request while referring to the new resource(s).

虽然一个 POST 可以创建多个资源,但它应该只创建一个根资源(或者,至少,这是措辞所建议的)。

总的来说,对于什么是允许的和什么是不允许的只有很少的硬性限制,因此 RFC 的措辞(应该、可以、...)。只要您在相应的 RFC 中没有看到 MUST 或 MUST NOT,您就可以随心所欲,但可能会违反最佳实践。

关于java - REST API 设计查询 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54933842/

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