Метод WebInvoke= "POST" или "GET" для службы REST в WCF

когда следует использовать post vs get? в службе REST на WCF?, ниже мой интерфейс

       [OperationContract]
       [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
       string DoLodge(string Id, Lodge value);

       [OperationContract]
       [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
       LodgeLevel[] GetLodgeLevels(string Id);

       [OperationContract]
       [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
       long GetLodgeCount(string Id);

4 ответов


POST следует использовать при отправке обновления обратно на сервер.

GET должен использоваться при получении объекта с сервера.

возможно, вы захотите прочитать, Что означают http-глаголы в контексте RESTful services:


POST каждый раз, когда вы изменяете какое-либо состояние на сервере, например обновление базы данных, удаление. Получить только для чтения, как выбор базы данных.


GET: получить коллекцию записей (как документ подачи) или одну запись (как документ ввода).

POST: создайте новую запись из документа записи.

PUT: обновление существующей записи с помощью документа записи.

DELETE: удалить запись.


но в C# вы получаете ответ в GET. поэтому полный ответ будет, GET должен использоваться при получении объекта с сервера и при отправке обновления с сервера.