Кажется, вы пытаетесь изменить семантику PATCH , что не является хорошей идеей.
HTTP включает методы, поддерживающие варианты использования удаленного создания; например, если бы я хотел изменить заголовок домашней страницы на моем веб-сайте, последовательность шагов могла бы выглядеть как
GET /home.html
200 OK
Content-Type: text/html
<html>...
(внести локальные изменения)
PUT /home.html
Content-Type: text/html
<html>...
200 OK
Теперь, если home.html
были очень большими (по сравнению с размером стандартных заголовков HTTP) и изменения, которые мы вносили, были очень маленькими, тогда мы могли бы вместо этого отправить патч-документ вместо отправки всего практически неизмененного файла.
PATCH /home.html
Content-Type: text/prs.patch
????
200 OK
Если бы мы хотели создать черновик, используя универсальный интерфейс удаленной разработки, наша последовательность запросов выглядела бы примерно как
GET /documents/123
PUT /drafts/456
и publi sh будут выглядеть примерно как
GET /drafts/456
PUT /documents/123
Похоже, вы хотите достичь этого, не отправляя документы по сети, позволяя серверу управлять процессом. Обычный способ сделать это - использовать POST
POST служит многим полезным целям в HTTP, включая общую цель «это действие не стоит стандартизировать».
POST /documents/123
???
201 Created
Location: /drafts/456
POST /drafts/456
???
200 OK
Сервер будет использовать полезную нагрузку POST-запросов для разрешения любой неоднозначности, которая может возникнуть из-за наличия нескольких действий, «не требующих стандартизации».