Я видел множество примеров того, как структурировать URL-адреса для базовых операций CRUD, но видел очень мало, когда говорил о дополнительных командных операциях или вызовах службы приложений.
Например, скажем, в моемПрикладная служба У меня есть вызов типа RemoveOldOrders (int customerId), который удалит любой заказ из системы старше 2 лет для клиента с идентификатором «customerId».Как бы выглядел этот URL на моем сервисе отдыха?Как бы выглядела полезная нагрузка вызова?Какой метод HTTP (POST?) Я бы использовал?
Я думал, что это будет примерно так:
/ Customer / 1 / RemoveOldOrders как POST, с пустым телом (какcustomerID будет получен из URL).
Есть ли хорошие рекомендации по этому вопросу?
Обновление: мне кажется, что мне нужно немного прояснить свой вопрос вместо комментария о возможномповторяющийся пост (да, этот пост, по сути, спрашивает об одном и том же, но я не совсем уверен, что на вопрос был получен хороший ответ).
Что если я хочу выполнить операцию с ресурсом, но эта операция невписывается в стандартные HTTP-глаголы?
Другой пример: мое приложение подключено к ESB, и должен быть способ принудительно проецировать мой ресурс на ESB для обработки?В моем текущем веб-сервисе на основе SOAP у меня был бы такой метод:
ExportCustomer(int customerId)
Теперь, в случае службы RESTful, как я мог бы представить это действие в URI?Вариант 1 из ответа Брайана Келли кажется наиболее логичным, что-то вроде:
POST http://someapp/api/customer/1/export
или будет:
POST http://someapi/api/customer/export/1
лучше?