REST API用于GET和POST / PUT的不同资源?

时间:2015-05-08 22:02:52

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

我目前正在设计RESTful API,因为我可以在C#中使用Microsoft的Web API 2。我所挣扎的是如何最好地表示资源或在GET调用和POST / PUT非常不同的情况下执行它的正确方法。

例如说我有一些调用具有id,name,status等的状态,这些可以分配给文档。所以我有这样的路线/ documents / {id} / states /。如果我在这里打电话给GET,我需要获得所有指定状态的完整列表,包括他们的ID,姓名等。

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

所以在这种情况下我有一些问题。我甚至不知道POST或PUT在这里是否正确,而第二个无论哪一个我都能得到一个整数数组?

1 个答案:

答案 0 :(得分:0)

在您的情况下,我建议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