[1] [DFN[[CODE(HTTP)@en[Accept-Patch:]]]] [[ヘッダー]]は、
[[鯖]]が受け付ける[[パッチ文書]]の[[MIME型]]を指定するものです。 [SRC[>>2]]

* 仕様書

[REFS[
- [2] '''[CITE@en[RFC 5789 - PATCH Method for HTTP]] ([TIME[2014-09-22 15:11:26 +09:00]] 版) <http://tools.ietf.org/html/rfc5789#section-3.1>'''
- [39] [CITE[RFC Errata Report]] ([TIME[2014-12-03 23:00:43 +09:00]] 版) <http://www.rfc-editor.org/errata_search.php?rfc=5789>
]REFS]

* 意味

[5] [CODE(HTTP)@en[[[Accept-Patch:]]]] [[ヘッダー]]は、[[対象資源]]において
[CODE(HTTP)@en[[[PATCH]]]] [[メソッド]]が使えることを表します [SRC[>>2]]。

[6] [CODE(HTTP)@en[[[Accept-Patch:]]]] [[ヘッダー]]の値は、
[[対象資源]]においてその [[MIME型]]による[[パッチ文書]]を使えることを表します [SRC[>>2]]。

* 構文

[7] [CODE(HTTP)@en[[[Accept-Patch:]]]] [[ヘッダー]]の値は、1つ[[以上]]の
[[MIME型]]の[[リスト]] ([CODE(HTTP)[#]]) です [SRC[>>2]]。

[FIG(railroad)[
= [[MIME型]]
= *
== [[OWS]]
== [CODE(HTTP)[[[,]]]]
== [[OWS]]
== [[MIME型]]
]FIG]

* 文脈

[3] [[鯖]]は、 [CODE(HTTP)@en[[[PATCH]]]] [[メソッド]]に対応する[[資源]]に対する
[CODE(HTTP)@en[[[OPTIONS]]]] [[要求]]への[[応答]]に、
[CODE(HTTP)@en[[[Accept-Patch:]]]] [[ヘッダー]]を含める[['''べきです''']] [SRC[>>2]]。

[4] [[鯖]]は、[CODE(HTTP)@en[[[PATCH]]]] [[応答]]で [CODE(HTTP)[[[415]]]]
を返す場合、[CODE(HTTP)@en[[[Accept-Patch]]]] [[頭欄]]も含める[['''べきです''']]。 [SRC[>>2]]

[40] [[鯖]]は、 [CODE(MIME)@en[[[application/json]]]] や [CODE(MIME)@en[[[application/xml]]]]
のような一般的で [CODE(HTTP)@en[[[PATCH]]]] における意味を定義していない
[[MIME型]]を[[パッチ文書]]として使えると考える[['''べきではありません''']] [SRC[>>39]]。

* 歴史

[11] [[RFC 5789]] により定義され、 [[IANA登録簿]]にも登録されています。

* 例

[8] [SRC[>>2]]
[PRE(HTTP example code)[
Accept-Patch: text/example;charset=utf-8
]PRE]

[9] [SRC[>>2]]
[PRE(HTTP example code)[
OPTIONS /example/buddies.xml HTTP/1.1
Host: www.example.com

[要求]
]PRE]
... という要求に対する応答は、
[PRE(HTTP example code)[
HTTP/1.1 200 OK
Allow: GET, PUT, POST, OPTIONS, HEAD, DELETE, PATCH
Accept-Patch: application/example, text/example

]PRE]

* 関連

[10] [CODE(HTTP)@en[[[PATCH]]]] [[メソッド]]に対応していることは、
[CODE(HTTP)@en[[[OPTIONS]]]] [[要求]]に対する[[応答]]に
[CODE(HTTP)@en[[[Allow:]] [[PATCH]]]] を含めることでも表明できます [SRC[>>2]]。
通常は両者を併用するのが好ましいと思われます。

[FIG(quote)[
[FIGCAPTION[
[12] [CITE@en[Linked Data Platform 1.0]]
([TIME[2015-02-27 16:10:31 +09:00]] 版)
<https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp.html#h-ldpr-patch-acceptpatch>
]FIGCAPTION]

> 4.2.7.1 LDP servers that support PATCH must include an Accept-Patch HTTP response header '''['''RFC5789''']''' on HTTP OPTIONS requests, listing patch document media type(s) supported by the server.

]FIG]


[FIG(quote)[
[FIGCAPTION[
[13] [CITE@en[RFC 8072 - YANG Patch Media Type]]
([TIME[2017-03-24 22:57:27 +09:00]])
<https://tools.ietf.org/html/rfc8072>
]FIGCAPTION]

> The RESTCONF server MUST return the "Accept-Patch" header field in an
>    OPTIONS response, as specified in '''['''RFC5789''']''', which includes the
>    media type for YANG Patch.  This is needed by a client to determine
>    the message-encoding formats supported by the server (e.g., XML,
>    JSON, or both).  The following is an example of an "Accept-Patch"
>    header:
>     Accept-Patch: application/yang-patch+xml,application/yang-patch+json

]FIG]
