仅使用POST,RESTful兼容

问题描述 投票:1回答:1

到目前为止,我只使用POST方法来创建Web服务(不适用于网站)。我认为它更安全,更好的方式,如果它不适用于网站,因为当发送敏感数据时,参数不存储在Web服务器日志中。

现在我不确定这是否符合RESTful并且是最佳方式。我目前的定义是这样的

POST https://{url}/order/getOrder
Content-Type: application/json
{
  "orderId": "42"
}

通常是GET-Request

GET https://{url}/order/42

要么

GET https://{url}/order/getOrder
Content-Type = application/json
{ "orderId"     : 42 }

可能问题是,如果所有示例都符合RESTful,或者只是最后两个。

最好的问候jd

rest post
1个回答
2
投票

现在我不确定这是否符合RESTful并且是最佳方式

从技术上讲,我想不是。 Cache constraints是REST架构风格中的一流关注点

高速缓存约束要求将对请求的响应中的数据隐式或显式标记为可高速缓存或不可高速缓存。

在HTTP规范中,POST明确列为cacheable method。但是,缓存失效规范要求对POST请求invalidates的非错误响应先前缓存了有效Request URI的条目。

因此,对于通常为safe操作的查询,您应该使用GET或HEAD。

因此,在您列出的选项中,“REST兼容”方法将是

GET https://{url}/order/42

你的第三种选择因different原因而失败:

GET请求消息中的有效负载没有定义的语义

我认为,这主要是因为当有效载荷需要被视为缓存密钥的一部分时,缓存很难做出明智的事情。

© www.soinside.com 2019 - 2024. All rights reserved.