【问题标题】:REST API different resources for GET and POST/PUT?用于 GET 和 POST/PUT 的 REST API 不同资源?
【发布时间】:2015-05-08 22:02:52
【问题描述】:

我目前正在设计一个 API 的 RESTful,我可以在 C# 中使用 Microsoft 的 Web API 2。我正在努力解决的是在 GET 调用和 POST/PUT 非常不同的情况下如何最好地表示资源或正确的方法。

例如说我有一个叫做状态的东西,它有一个 id、名字、状态等,这些可以分配给一个文档。所以我有这样的路线 /documents/{id}/states/ 。如果我在这里调用 GET,我需要获取所有已分配状态的完整列表,包括它们的 id、名称等。

但是,为了更改分配给文档的状态,我只需要传递 id。我不能单独执行此操作,它必须是一个被发送的数组,因为用户可能一次与数百或数千个交互。

所以在这种情况下,我有一些问题。我什至不知道这里的 POST 或 PUT 是否正确,第二个是哪个,我可以只接受一个整数数组吗?

【问题讨论】:

    标签: c# rest resources asp.net-web-api2


    【解决方案1】:

    在您的情况下,我建议 PUT 是您想要使用的方法,因为您知道要更新的资源的位置。有关更多信息,请参阅此处:http://restcookbook.com/HTTP%20Methods/put-vs-post/

    在 ASP.NET Web API 2 中,您可以使用 [FromBody] 参数属性,这样您的方法签名将是: public void UpdateStates(int id, [FromBody]List<int> states) {} 有关参数属性的更多信息可以在这里找到:http://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-24
      • 2015-01-25
      • 1970-01-01
      • 2020-06-07
      • 2017-12-26
      • 1970-01-01
      • 2011-01-13
      相关资源
      最近更新 更多