В API у меня есть ресурс билетов и есть 2 метода:
1) Получить статус тикета (билет можно заблокировать/разблокировать)
GET /api/tickets/:id
2) Обновить статус тикета
PUT /api/tickets/:id with status=locked|unlocked
Что мне нужно, так это совместить проверку статуса с фактическим обновлением в одном вызове API. И мне также нужно знать, изменился ли статус при вызове API или он уже был установлен на нужное значение. Например:
ticket_status = "unlocked"
PUT /api/tickets/:id/check_lock
changes ticket_status to "locked" and responses with "success"
ticket_status = "locked"
PUT /api/tickets/:id/check_lock
ticket_status is already "locked" so we response with "ignored"
Для обратной операции мы можем иметь
PUT /api/tickets/:id/check_unlock
Я понимаю, что здесь мы нарушаем принцип единой ответственности, объединяя операции, но это делается для уменьшения количества запросов API, и это будет вызываться очень часто.
Поэтому я ищу хорошие имена вместо этих уродливых «check_lock», «check_unlock», поскольку они кажутся довольно двусмысленными.