春のAPIにヘッダーベースのコンテンツネゴシエーションを受け入れるために、より良いアプローチはありますか?

カルティクUdayakumar:

私は受け入れるヘッダーを変更することで、同じREST API関数に対して複数の応答を定義するためにコンテントネゴシエーションを使用しています。

  1. ヘッダを受け入れる:アプリケーション/ JSONを、(別のサービスによって使用される)、JSONなどの応答を与えるべき
  2. ヘッダーを受け入れ:アプリケーション/ octet-streamと、カスタムファイル拡張子を持つファイルと同じJSONレスポンスをダウンロードする必要があり、UIが使用します

私はAcceptヘッダーにアプリケーション/オクテットストリームを渡すとき、現在、私は406を取得しています。

これは正しいアプローチですか?または私は2に機能を分割または使用クエリパラメータに、より良い、それをある必要があります

カルリートスウェイ:

私はAcceptヘッダーにアプリケーション/オクテットストリームを渡すとき、現在、私は406を取得しています。

おそらく、あなたはあなたのエンドポイントでのアノテーションのいくつかの種類を使用しています...

ような何か:@RequestMappingまたは(@GetMappingまたは@PostMapping、など)...よく、その注釈が含まれているproduces属性を...その属性は、あなたのケースでは、あなたのエンドポイントが生じることが予想されていることの種類を持っている必要があります。[application/json, application/octet-stream]...

注:クライアントはこれを行うために...種類のフォーマットの彼が何を望んで、あなたのエンドポイントに示す必要がありますが、クライアントが使用して書式を指定する必要がありAcceptます。httpヘッダ...

これは正しいアプローチですか?または私は2に機能を分割するか、それが使用クエリパラメータに優れている必要がありますか?

あなたのAPIは単純であり、あなたは標準によって提案されたメカニズムを使用しているので、私にとっては、それが正しいアプローチであります...

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=277281&siteId=1