@Consumes
と同様に@Produces
、どちらも Media タイプを受け入れます。Accept リクエストのヘッダーはどのアノテーションに対応していますか?
ほとんどの例 (例: jax-rs アプリケーションを開発する際に accept-parameters を処理する方法@Produces
) では、クライアント要求からヘッダーを受け入れるために使用することが示されています。
@Consumes
と同様に@Produces
、どちらも Media タイプを受け入れます。Accept リクエストのヘッダーはどのアノテーションに対応していますか?
ほとんどの例 (例: jax-rs アプリケーションを開発する際に accept-parameters を処理する方法@Produces
) では、クライアント要求からヘッダーを受け入れるために使用することが示されています。
@Consumes
リクエストタイプ、つまりクライアントが送信しているタイプContent-Type
です。例えば
@Consumes("application/json")
...
> POST / HTTP/1.1
> Content-Type: application/json
{ "json": "data" }
< 200 OK
@Consumes("application/json")
...
> POST / HTTP/1.1
> Content-Type: application/xml
<xml><data></data></xml>
> 415 Unsupported Media Type
リクエストの例を 2 つ示します。サーバー上では、両方に の注釈が付けられてい@Consumes("application/json")
ます。これは、JSON 形式で送信されるデータのみを処理できることを意味します。最初のリクエストで、クライアントは正しいデータを送信するContent-Type
ため、OK レスポンスが返されます。Content-Type
2 番目の要求では、サポートされていないXML データを送信するため、415 を取得します。
は@Produces
、サーバーから送信されるデータのタイプです。クライアントは、Accept
受け入れる (または処理する) ことができるタイプを示すヘッダーを追加することもできます。そのタイプが で指定されていない場合@Produces
、サーバーはそのタイプを処理できず、クライアントはエラー メッセージを受け取ります。例えば
@Produces("application/json")
...
> GET / HTTP/1.1
> Accept: application/json
< 200 OK
{ "json" : "data" }
@Produces("application/json")
...
> GET / HTTP/1.1
> Accept: application/xml
< 406 Not Acceptable