Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RESTAPI获取和发布/放置的不同资源?_C#_Rest_Resources_Asp.net Web Api2 - Fatal编程技术网

C# RESTAPI获取和发布/放置的不同资源?

C# RESTAPI获取和发布/放置的不同资源?,c#,rest,resources,asp.net-web-api2,C#,Rest,Resources,Asp.net Web Api2,我目前正在设计一个RESTful API,尽可能使用Microsoft的Web API 2的C语言。我正在努力解决的问题是,在GET调用和POST/PUT非常不同的地方,如何最好地表示资源或正确地表示资源 例如,假设我有一些东西调用具有id、名称、状态等的状态,这些可以分配给文档。所以我有这样一个路径/documents/{id}/states/。如果我调用GET here,我需要获取所有指定状态的完整列表,包括它们的id、名称等 但是,为了更改分配给文档的状态,我只需要传递id。我无法单独执行

我目前正在设计一个RESTful API,尽可能使用Microsoft的Web API 2的C语言。我正在努力解决的问题是,在GET调用和POST/PUT非常不同的地方,如何最好地表示资源或正确地表示资源

例如,假设我有一些东西调用具有id、名称、状态等的状态,这些可以分配给文档。所以我有这样一个路径/documents/{id}/states/。如果我调用GET here,我需要获取所有指定状态的完整列表,包括它们的id、名称等

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


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

在您的情况下,我建议使用PUT方法,因为您知道要更新的资源的位置。有关更多信息,请参见此处:

在ASP.NET Web API 2中,您可以使用[FromBody]参数属性,以便您的方法签名为: public void UpdateStatesint id,[FromBody]列表状态{} 有关参数属性的更多信息可在此处找到: