Мои заявки на участие в торгах требуют, чтобы пользователи регистрировались, прежде чем они смогут использовать эту услугу, и сделать это, создав приложение. Начальный план интерфейса следующий:Rest API требует дополнительных операций - как структурировать?
POST /Users/Applications
- Создает приложение и возвращает уникальный идентификатор.
GET /Users/Applications/{id}
- Извлекает существующее приложение.
PUT /Users/Applications/{id}
- Обновляет существующее приложение.
DELETE /Users/Applications/{id}
- Удаляет существующее приложение.
Это кажется очень чистым и логичным и наилучшим образом использует HTTP-глаголы. Однако, что, если мне теперь нужно выполнять другие операции над приложением, например.
ActivateApplication - когда все данные в системе с помощью PUT Теперь я хочу, чтобы пользователи, чтобы активировать их применение. Это не просто вопрос обновления статуса приложения с помощью PUT, есть несколько дополнительных заданий, которые должны быть сделаны для активации приложения, такого как отправка по электронной почте отдела HR. сообщить им, что поступило новое заявление.
PrintApplication - при вызове с клиента печатает приложение на офисном принтере. (Не идеальный пример, но у вас есть идея, я уверен!)
0 Как я могу структурировать интерфейс REST для обработки этого типа запроса? Возможно, что-то вроде этого ...
POST /Users/Applications/{id}/print
POST /Users/Applications/{id}/activate
... для активации Я меняю состояние, поэтому считаю, что мне нужно использовать POST. Я понимаю, что REST - это документы, но как я могу структурировать свой API, когда мне нужно выполнять операции с документами, а не просто получать и обновлять сам документ?
Для активации вы рассмотрели POSTing для/Users/Applications/{id} обновленного ресурса приложения, например, для свойства IsActivated установлено значение true? Тогда вам, вероятно, потребуется обработать событие, когда свойство изменилось, чтобы инициировать процессы, такие как отправка писем. – elolos