【问题标题】:Using the POST method of a REST API for read operations使用 REST API 的 POST 方法进行读取操作
【发布时间】:2018-03-12 20:45:07
【问题描述】:

在restful API中,应该使用POST来创建,而应该使用GET来读取。

有时,出于安全原因,您不能在 URI 中传递敏感变量。例如,如果您有一个 /accounts API 要求您传递“accountNumber”。如果您的安全团队不允许您将其放入 URI,那么您必须使用 POST 方法而不是 GET 方法来服务“读取”操作,然后您可以在请求正文中提供帐号。

这让我想到了我的问题:如果您已经用完 POST 方法来为读取操作提供服务,那么您如何为同一个 API 的“创建”操作提供服务?

"/accounts/create" 不建议使用,因为您的 API 应该是名词,而不是动词。用完不同的 HTTP 方法(如 PUT)似乎是不对的。这个问题经常出现,所以我很好奇人们正在做什么来解决它?

【问题讨论】:

  • 考虑使用 HTTPS。

标签: json rest api post get


【解决方案1】:

如果您为此使用POST,则您并未构建 RESTful 服务。在我看来,你有两个选择:

  1. 接受这一点,并构建一个更像 RPC 的系统。
  2. 在您的应用程序中更改 ID,以免它们构成安全风险。如果知道 id 是个问题,请考虑使用其他东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-13
    • 2021-01-19
    • 1970-01-01
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-26
    相关资源
    最近更新 更多