Какой метод HTTP следует использовать для моего метода службы REST, выполняющего ЧТЕНИЕ И ЗАПИСЬ?

В соответствии с рекомендациями по службам RESTful мы должны использовать GET для чтения ресурса, POST для создания нового ресурса, DELETE для удаления существующего ресурса и т. д.

Но предположим, что я разрабатываю веб-сервис RESTFul, скажем, OrderProcessing. В методе placeOrder(Order) я должен прочитать некоторые таблицы, такие как инвентарь, сведения о продукте и т. д., вставить некоторые новые строки в таблицы, такие как сведения о заказе и заказе, и выполнить обновления, такие как уменьшение уровня запасов и т. д. Затем какой метод HTTP я должен использовать для placeOrder ( ) метод.

На очень высоком уровне мы создаем новый ресурс (заказ), поэтому я подумал, что POST - правильный метод HTTP для использования.

Но в целом какой глагол следует использовать для метода, выполняющего чтение/создание/обновление данных внутри того же метода?


person K. Siva Prasad Reddy    schedule 26.02.2013    source источник


Ответы (2)


Я согласен с вашим мнением, что POST здесь уместен. Даже если вы выполняете несколько операций, вы можете рассматривать это как единое создание вашего ресурса Order. Что касается других операций, я бы рассматривал их как внутренние детали, которые вы не раскрываете потребителю своих услуг.

Изменить. Сделав еще один шаг, предполагается, что вы определили Order как свой ресурс, а тело POST содержит представление этого ресурса. И чтобы быть полностью RESTful, если POST приводит к созданию нового заказа, тогда HTTP 201 является подходящим кодом ответа. См. раздел 9.5 http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html для более подробной информации.

person EJK    schedule 26.02.2013

Однозначно ПОСТ. Вы можете исключить GET и DELETE по очевидным причинам, и вы хотите использовать PUT только для идемпотентной операции. Поскольку вы сокращаете запасы, вы можете смело исключить PUT как приемлемый вариант.

person phatfingers    schedule 26.02.2013