REST : GET 但有一个 requestBody
REST : GET but with a requestBody
我正在编写一个将提取数据的端点。我的问题是,客户端请求需要将(非常复杂的)对象列表以及其他复杂数据传递给我的点。
整个事情看起来很复杂,可以通过参数传递。
我还应该使用 GET 吗?我可以用 requestBody 来做吗?或者我可以用响应主体做一个 POST 吗?
我的端点仍然需要遵守 REST
我需要传递的数据:
{id :"anUuid",
评论:"some very long text sometime more than 1000 char",
dataComputedByOtherServer:[{id:"anUuid",stuff:{"a lot of other stuff"}}]
}
响应正文:
{
//allong 以及通常的 REST 响应 http 代码和其他错误消息
有效载荷:{
moreComplexData:[{id:"anUuid",stuff:{"a lot of other stuff"}}]
}
}
HTTP GET 没有正文负载 - 您需要使用 POST(或 PUT)根据需要发送它。
A payload within a GET request message has no defined semantics -- https://www.rfc-editor.org/rfc/rfc7231#section-4.3.1
所以GET越界了
从长远来看,想要的方法最终可能是SEARCH;见 https://github.com/httpwg/http-extensions/issues/943
While POST with the header defined in #942 would help, POST is still an unsafe method that poorly reflects the safe, idempotent semantics of search-like operations. I therefore argue that a a SEARCH method is needed to have a safe, idempotent method with explicit caching support, in opposition to POST which explicitly is not cacheable.
但到 2019 年我们还没有做到这一点:SEARCH 的语义仍然由 WebDAV specification 定义,它们并不完全代表您想要的意思。
我正在编写一个将提取数据的端点。我的问题是,客户端请求需要将(非常复杂的)对象列表以及其他复杂数据传递给我的点。
整个事情看起来很复杂,可以通过参数传递。 我还应该使用 GET 吗?我可以用 requestBody 来做吗?或者我可以用响应主体做一个 POST 吗? 我的端点仍然需要遵守 REST
我需要传递的数据: {id :"anUuid", 评论:"some very long text sometime more than 1000 char", dataComputedByOtherServer:[{id:"anUuid",stuff:{"a lot of other stuff"}}]
}
响应正文: { //allong 以及通常的 REST 响应 http 代码和其他错误消息 有效载荷:{ moreComplexData:[{id:"anUuid",stuff:{"a lot of other stuff"}}] } }
HTTP GET 没有正文负载 - 您需要使用 POST(或 PUT)根据需要发送它。
A payload within a GET request message has no defined semantics -- https://www.rfc-editor.org/rfc/rfc7231#section-4.3.1
所以GET越界了
从长远来看,想要的方法最终可能是SEARCH;见 https://github.com/httpwg/http-extensions/issues/943
While POST with the header defined in #942 would help, POST is still an unsafe method that poorly reflects the safe, idempotent semantics of search-like operations. I therefore argue that a a SEARCH method is needed to have a safe, idempotent method with explicit caching support, in opposition to POST which explicitly is not cacheable.
但到 2019 年我们还没有做到这一点:SEARCH 的语义仍然由 WebDAV specification 定义,它们并不完全代表您想要的意思。