【问题标题】:POST or GET for a validation of some data endpoint in REST?POST 或 GET 用于验证 REST 中的某些数据端点?
【发布时间】:2017-01-16 09:23:12
【问题描述】:

我有一个服务器端点,它验证一些数据并在数据验证没有错误时返回真/假。

那么哪个版本更正确或更适合 RESTful 网络服务?

POST https://server.de/validate

如果验证没有错误,则在正文中发布数据并返回 HTTP 状态代码 200 或

GET https://server.de/validate?=data

在标头或查询参数中发送数据,并在响应中返回真/假(正确请求后将返回状态码 200,与数据验证无关)。

【问题讨论】:

  • 在 uri 中使用动词作为 REST 术语中的验证是不理想的。这更像是面向程序的。你必须根据资源来识别它并将其转换为获取并发布到您必须验证的资源...
  • 没错,我称之为validation
  • 两个 URI 都不是 Restful。这两个 URI 都不是一个 resource ,您传输给它的文档是一个表示。相反,端点充当处理器,对发送给它们的数据进行转换。您应该完全重新考虑您的 URI 结构,或者停止调用您正在做的事情 REST。

标签: web-services rest http restful-architecture


【解决方案1】:

如果信息敏感,您应该始终使用 POST。

阅读This thread了解更多信息,如果你搜索的话,有很多与你类似的问题:

编辑/更新: a good source for seeing the difference

【讨论】:

  • 即使我们有 https?
  • 是的,但这当然取决于具体情况,我链接的问题中有很好的例子,通读它们你会更好地了解你应该实现什么。我个人更喜欢 POST 方法,它不太容易出现恶意用户和“错误”,例如,GET 方法可以通过电子邮件作为链接被恶意用户发送等。@Gobliins
猜你喜欢
  • 1970-01-01
  • 2021-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多