Это приемлемо?
Вероятно, нет
PATCH /api/v1/rides
- это запрос на изменение ресурса /api/v1/rides
; то есть тот же ресурс, который вы запрашиваете при отправке запроса GET /api/v1/rides
. Если вы намерены вместо этого изменить какой-либо другой ресурс, то ресурс, который вы намереваетесь изменить, должен быть целевым URI.
Потенциальная проблема заключается в следующем: компоненты общего назначения HTTP думают, что все ресурсы понимают просит так же. Это REST-ограничение интерфейса «самоописательные сообщения» на работе. Когда вы рекламируете, что ваш ресурс поддерживает PATCH, мой сторонний браузер / spider / cache / proxy может предположить, что PATCH означает то же самое для вашего ресурса, что и любой другой ресурс в Интернете.
Когда что-то идет не так дорого, потому что ваш ресурс использовал семантику, отличную от стандартной, это на вас, а не на клиенте.
PATCH означает «применить эти изменения к ресурсу, определенному целью URI». Если вы хотите применить изменения к другому ресурсу, вам следует указать этот идентификатор вместо этого.
Если вы делаете что-то нестандартное, то вам, вероятно, следует использовать POST, а не PATCH, так как маркер метода в запросе. См. Fielding 2009 :
POST служит многим полезным целям в HTTP, включая общую цель «это действие не стоит стандартизировать».