Как составить путь, если действие над ресурсом ВНЕ рамок REST?
Уверена, что любой аналитик хотя бы раз задумывался над формированием пути для метода, который делает что-то кроме обычного CRUD. В моей практике CRUD встречается реже, чем действие над ресурсом. Сейчас расскажу, какие фишки я использую.
🏓 Использование дополнительных суффиксов
Если вам действительно нужно указать действие, можно добавить дополнительные суффиксы к пути. Такие подходы считаются менее предпочтительными, поскольку они нарушают чистоту REST подхода, но мы с вами бойцы системного фронта, а не блюстители чистоты REST’a, правда?
🥎 Действия в виде глаголов (да, за это не будут бить, я узнавала)
Пример - Отправка уведомления пользователю
POST /users/{user_id}/send_notification
🥎 Конкретные операции:
Операции, которые нельзя однозначно отнести к стандартным методам HTTP, можно выразить через суффиксы.
Пример - Запуск процесса обработки заказа
POST /orders/{order_id}/process
🏓 Использовать другие методы
Некоторые API предпочитают использовать специальные методы, такие как RPC (Remote Procedure Call), которые позволяют описывать конкретные действия. В таком случае можно использовать префиксы или отдельные маршруты для каждого метода.
Запуск оплаты может выглядеть так:
POST /payments/initiate_payment
Внешне как и REST, но под капотом.....
Было интересно? Узнали что-то новое?
Post #29
94