фон:Использование HTTP DELETE метода для отмены действия в ходе
I обеспечивает программный интерфейс для людей, которые хотят размещать заказы с помощью моего сайта.
Они могут использовать GET
и POST
методы на /api/v1/orders
, чтобы разместить заказ и просмотреть список всех размещенных ими заказов. Они также могут использовать метод GET
на /api/v1/orders/<order_id>
, чтобы просмотреть конкретную информацию одного заказа.
Необходимо указать способ отмены заказа, однако сами записи должны храниться.
Я хотел бы получить обратную связь от более опытных разработчиков о том, будет ли это быть вменяемым решение для:
а) осуществлению DELETE
глагола на /api/v1/current_orders/<order_id>
, который будет удалить его из списка «ток» заказы (отмечая его отмену). Недостатком является то, что он будет использовать другое существительное, которое может ввести в заблуждение.
б) реализовать DELETE
глагол на /api/v1/orders/<order_id>
с теми же функциональными возможностями, что и в а). Это несколько вводит в заблуждение, поскольку сущность не будет действительно удалена, и потребитель должен знать об этом.
с) реализовать POST
глагол на /api/v1/cancellations/<order_id>
(или POST
на /api/v1/cancellations
с order_id в полезной нагрузке JSON). Это кажется менее идеальным, потому что ресурс не будет создан в результате этого запроса. Однако последствия использования этой конечной точки кажутся более ясными.
d) ...?
Вопрос:
Я знаю, что не всегда является «идеальным» решением для проектирования конечных точек для REST API, но имея в виду необходимость ясности и интуитивность и с высоко ценим передовой опыт, какой из вариантов «оптимальный»?