Я пытаюсь понять рамки и пределы API RESTful. Мой конкретный вопрос заключается в следующем: как я могу обрабатывать REST API, который предоставляет операции, а не ресурсы? Должен ли я отказаться от соблазна разоблачения операций и переосмыслить API для предоставления данных (ресурсов). Исходя из ООП, который чувствует себя вопиющим нарушением инкапсуляции объекта.REST прерывает инкапсуляцию данных?
Представьте, что вам необходимо предоставить API REST, который осуществляет денежный перевод: перечисляет сумму из одной учетной записи в другую учетную запись. Если я понимаю REST, эти два счета должны быть представлены как ресурсы, и для этих двух ресурсов необходимо будет задействовать две разные операции UPDATE. Для меня это похоже на явное нарушение инкапсуляции данных. Моя тенденция заключается в создании API, который моделирует операцию «перевод денег», а не ресурсную «учетную запись». Могу ли я создать REST API, который выполняет «передачу данных»? Это больше не REST (поскольку он не является ресурсным центром).
Любые комментарии к этим сценариям, где вызовы RPC выглядят более подходящими, чем REST?
Благодаря
В службе RESTful вам просто нужно вызвать метод отправки, чтобы перевести средства из одной учетной записи в другую и передать всю информацию в почтовом теле! Я не понимаю, зачем вам нужны два ресурса для одной транзакции. – Nilesh
Моя тенденция - делать то, что вы предлагаете. Я изучаю REST, и я обеспокоен тем, что если я сделаю то, что вы предлагаете, я больше не использую REST (который должен быть ориентирован на ресурсы), а скорее вызов RPC, маскирующийся как REST. – DanDan
Не существует правила, согласно которому ресурс должен отображаться в реальном объекте в вашей системе. У вас может быть составной ресурс или ресурс, представляющий результат операции. –