PATCH
ÐеÑод запÑоÑа HTTP PATCH ÑаÑÑиÑно изменÑÐµÑ ÑеÑÑÑÑ.
Ркакой-Ñо ÑÑепени PATCH можно назваÑÑ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¾Ð¼ дейÑÑÐ²Ð¸Ñ Â«Ð¾Ð±Ð½Ð¾Ð²Ð¸ÑÑ» из CRUD (однако не ÑледÑÐµÑ Ð¿ÑÑаÑÑ HTTP и CRUD â ÑÑо две ÑазнÑе веÑи).
ÐапÑÐ¾Ñ PATCH ÑвлÑеÑÑÑ Ð½Ð°Ð±Ð¾Ñом инÑÑÑÑкÑий о Ñом, как измениÑÑ ÑеÑÑÑÑ. РоÑлиÑие Ð¾Ñ PUT, коÑоÑÑй полноÑÑÑÑ Ð·Ð°Ð¼ÐµÐ½ÑÐµÑ ÑеÑÑÑÑ.
PATCH Ð¼Ð¾Ð¶ÐµÑ ÐºÐ°Ðº бÑÑÑ Ð¸Ð´ÐµÐ¼Ð¿Ð¾ÑенÑнÑм, Ñак и не бÑÑÑ, в оÑлиÑие Ð¾Ñ PUT, коÑоÑÑй вÑегда идемпоÑенÑен. ÐпеÑаÑÐ¸Ñ ÑÑиÑаеÑÑÑ Ð¸Ð´ÐµÐ¼Ð¿Ð¾ÑенÑной, еÑли ÐµÑ Ð¼Ð½Ð¾Ð³Ð¾ÐºÑаÑное вÑполнение пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº ÑÐ¾Ð¼Ñ Ð¶Ðµ ÑезÑлÑÑаÑÑ, ÑÑо и однокÑаÑное. ÐапÑимеÑ, еÑли авÑоинкÑеменÑное поле ÑвлÑеÑÑÑ Ð²Ð°Ð¶Ð½Ð¾Ð¹ ÑаÑÑÑÑ ÑеÑÑÑÑа, Ñо PUT пеÑезапиÑÐµÑ ÐµÐ³Ð¾ (Ñ.к. он пеÑезапиÑÑÐ²Ð°ÐµÑ Ð²ÑÑ), но PATCH Ð¼Ð¾Ð¶ÐµÑ Ð¸ не пеÑезапиÑаÑÑ.
PATCH (как и POST) Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ Ð¿Ð¾Ð±Ð¾ÑнÑе ÑÑÑекÑÑ.
ЧÑÐ¾Ð±Ñ Ð¾Ð±Ð¾Ð·Ð½Ð°ÑиÑÑ, ÑÑо ÑеÑÐ²ÐµÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶Ð¸Ð²Ð°ÐµÑ PATCH, можно добавиÑÑ ÑÑÐ¾Ñ Ð¼ÐµÑод в ÑпиÑок заголовков оÑвеÑа Allow или Access-Control-Allow-Methods (Ð´Ð»Ñ CORS).
ÐÑÑгим (неÑвнÑм) индикаÑоÑом, ÑÑо меÑод PATCH ÑазÑеÑÑн, ÑвлÑеÑÑÑ Ð½Ð°Ð»Ð¸Ñие заголовка Accept-Patch, коÑоÑÑй опиÑÑваеÑ, какой ÑоÑÐ¼Ð°Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð¾ÐºÑменÑа пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑеÑвеÑ.
| ÐапÑÐ¾Ñ Ð¸Ð¼ÐµÐµÑ Ñело | Ðа |
|---|---|
| УÑпеÑнÑй оÑÐ²ÐµÑ Ð¸Ð¼ÐµÐµÑ Ñело | ÐÐ¾Ð¶ÐµÑ |
| ÐезопаÑнÑй | ÐÐµÑ |
| ÐдемпоÑенÑнÑй | ÐÐµÑ |
| ÐеÑиÑÑемÑй | ТолÑко еÑли вклÑÑена инÑоÑмаÑÐ¸Ñ Ð¾ даÑе поÑледнего Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ |
| ÐопÑÑкаеÑÑÑ Ð² HTML-ÑоÑÐ¼Ð°Ñ | ÐÐµÑ |
СинÑакÑиÑ
PATCH /file.txt HTTP/1.1
ÐÑимеÑ
>ÐапÑоÑ
PATCH /file.txt HTTP/1.1
Host: www.example.com
Content-Type: application/example
If-Match: "e0023aa4e"
Content-Length: 100
[опиÑание изменений]
ÐÑвеÑ
УÑпеÑнÑй оÑÐ²ÐµÑ ÑказÑваеÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð»Ñбого кода оÑвеÑа ÑеÑии 2xx.
Ð ÑледÑÑÑем пÑимеÑе иÑполÑзÑеÑÑÑ ÐºÐ¾Ð´ оÑвеÑа 204, поÑколÑÐºÑ Ð¾ÑÐ²ÐµÑ Ð½Ðµ ÑодеÑÐ¶Ð¸Ñ Ñела ÑообÑениÑ. ÐÑли ÑÑебÑеÑÑÑ Ð¿ÐµÑедаÑÑ Ñело, Ñо иÑполÑзÑеÑÑÑ ÐºÐ¾Ð´ 200.
HTTP/1.1 204 No Content Content-Location: /file.txt ETag: "e0023aa4f"
СпеÑиÑикаÑии
| Specification |
|---|
| RFC 5789 > |
СмоÑÑиÑе Ñакже
204Allow,Access-Control-Allow-MethodsAccept-Patchâ ÑказÑÐ²Ð°ÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÑемÑе ÑÐ¸Ð¿Ñ Ð´Ð¾ÐºÑменÑов пÑинимаемÑе ÑеÑвеÑом.