SpringBootでコンテンツネゴシエーションを解決する簡単な方法はありますか

ハンス・ジェイコブ・メルビー

REST APIのバージョン管理の形式としてコンテンツタイプのネギシエーションを使用する予定ですが、本来よりも複雑に見えます。次のサンプルコードを考えると:

@RestController
@RequestMapping("/products")
ProductController {
.......
@RequestMapping(value = "/{productID}", method = RequestMethod.GET, produces = "productVersion2/json")
public ResponseEntity<ProductV2> getVersion2(@PathVariable String productID) {
.......
return new ResponseEntity<ProductV2>(product, HttpStatus.OK);

たとえばpostmanからこれをテストすると、正しいメソッドが呼び出されますが、応答としてHTTP 406 NotAcceptableが返されます。私はいくつかの場所を探していましたが、この作業を行うために何をする必要があるかについての適切な説明が記載されたページが見つかりませんでした。

応答は他のすべての要求と同じようにjsonで解析されますが、応答オブジェクトは変更されます。これを行うことで、同じAPIの複数の「バージョン」をサポートでき、同じURI /リソースにアクセスしながら、クライアントを新しいAPIに徐々に移行できると考えられます。

誰もがこれがスプリングブーツでどのように解決できるかについての良いチュートリアルまたはステップバイステップガイドを指摘できますか?

私はこの記事を読みました:http//spring.io/blog/2013/05/11/content-negotiation-using-spring-mvc/#combined-controllerしかし、何が必要かを明確に理解することができませんでしたそれを機能させるために

ci_

メディアタイプが間違っています。APIバージョン管理にカスタムメディアタイプを使用するapplication/productVersion2+jsonには、の代わりに使用できますproductVersion2/jsonSpring BootにはproductVersion2/jsonjsonデータの有効なメディアタイプではないため、オブジェクトをJSONにシリアル化する方法を見つける方法がないため、406を取得していると思われます

これを行うためにメディアタイプを選択する方法は複数ありますここでより包括的なドキュメントをグーグルで検索しまし

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

HTML要素のコンテンツカテゴリを決定する簡単な方法はありますか?

分類Dev

VSコードの括弧内のコンテンツを展開するための簡単な方法/ショートカットはありますか(メソッドの折りたたみ/展開ではありません)

分類Dev

検索エンジンフィールドのコンテンツをブラウザページで検索する簡単な方法はありますか?

分類Dev

変数名とコンテンツをコンソールに送信する簡単な方法はありますか?

分類Dev

Spring Data Restでコンテンツネゴシエーションを使用する方法は?

分類Dev

Oracleパーティションを作成する簡単な方法はありますか

分類Dev

node.js expressで、HTTPリクエストを伝える方法は、コンテンツネゴシエーションのapplication / jsonまたはhtmlです。

分類Dev

さまざまな出力形式を検討する際のコンテンツネゴシエーション

分類Dev

Vue-cliで新しいコンポーネントを作成する簡単な方法はありますか?

分類Dev

CSS の本文コンテンツまたは他のページとのナビゲーションバーの重なりを解決する方法

分類Dev

Androidアプリケーションでc / c ++ソースコードを直接使用する簡単な方法はありますか?

分類Dev

swift 4のナビゲーションコントローラーで戻るナビゲーションアイテムをクリックしたときにログアウトする簡単な方法はありますか?

分類Dev

アプリケーションIDと名前を変更する簡単な方法はありますか?

分類Dev

Webアニメーションを操作する簡単な方法はありますか?

分類Dev

エンティティなしで `@ Procedure`アノテーションを使用する方法はありますか?

分類Dev

SVG要素のコンテンツをクリアする簡単な方法はありますか?

分類Dev

Hiveの管理テーブルからパーティションテーブルを作成する簡単な方法はありますか?

分類Dev

コーディング戦略を決定する、より簡単な方法はありますか?

分類Dev

システムにインストールされているGTKおよびQTバージョンを印刷する簡単な方法はありますか?

分類Dev

ワンホットエンコーディングなしでカテゴリ変数を持つ決定木を使用する方法はありますか?

分類Dev

ドメインワークステーションのローカルアカウントにログインする簡単な方法はありますか?

分類Dev

反応コンポーネントを自動モックする簡単な方法はありますか

分類Dev

最新のOpenGLで「オンザフライ」で簡単なアニメーションを作成する方法はありますか?

分類Dev

(ボタンが押されるたびに)、新しいコンポーネントを追加するときダウン「より古い」コンポーネントをシフトする簡単な方法はありますか?

分類Dev

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

分類Dev

TYPO3-静的テンプレートのコンテンツを表示する(簡単な)方法はありますか?

分類Dev

matplotlibでスクロールする垂直線をアニメーション化する簡単な方法はありますか?

分類Dev

春のコンテンツネゴシエーションにcsv MimeTypeを追加するには?

分類Dev

ClassLibraryがセッション値を取得する簡単な方法はありますか?

Related 関連記事

  1. 1

    HTML要素のコンテンツカテゴリを決定する簡単な方法はありますか?

  2. 2

    VSコードの括弧内のコンテンツを展開するための簡単な方法/ショートカットはありますか(メソッドの折りたたみ/展開ではありません)

  3. 3

    検索エンジンフィールドのコンテンツをブラウザページで検索する簡単な方法はありますか?

  4. 4

    変数名とコンテンツをコンソールに送信する簡単な方法はありますか?

  5. 5

    Spring Data Restでコンテンツネゴシエーションを使用する方法は?

  6. 6

    Oracleパーティションを作成する簡単な方法はありますか

  7. 7

    node.js expressで、HTTPリクエストを伝える方法は、コンテンツネゴシエーションのapplication / jsonまたはhtmlです。

  8. 8

    さまざまな出力形式を検討する際のコンテンツネゴシエーション

  9. 9

    Vue-cliで新しいコンポーネントを作成する簡単な方法はありますか?

  10. 10

    CSS の本文コンテンツまたは他のページとのナビゲーションバーの重なりを解決する方法

  11. 11

    Androidアプリケーションでc / c ++ソースコードを直接使用する簡単な方法はありますか?

  12. 12

    swift 4のナビゲーションコントローラーで戻るナビゲーションアイテムをクリックしたときにログアウトする簡単な方法はありますか?

  13. 13

    アプリケーションIDと名前を変更する簡単な方法はありますか?

  14. 14

    Webアニメーションを操作する簡単な方法はありますか?

  15. 15

    エンティティなしで `@ Procedure`アノテーションを使用する方法はありますか?

  16. 16

    SVG要素のコンテンツをクリアする簡単な方法はありますか?

  17. 17

    Hiveの管理テーブルからパーティションテーブルを作成する簡単な方法はありますか?

  18. 18

    コーディング戦略を決定する、より簡単な方法はありますか?

  19. 19

    システムにインストールされているGTKおよびQTバージョンを印刷する簡単な方法はありますか?

  20. 20

    ワンホットエンコーディングなしでカテゴリ変数を持つ決定木を使用する方法はありますか?

  21. 21

    ドメインワークステーションのローカルアカウントにログインする簡単な方法はありますか?

  22. 22

    反応コンポーネントを自動モックする簡単な方法はありますか

  23. 23

    最新のOpenGLで「オンザフライ」で簡単なアニメーションを作成する方法はありますか?

  24. 24

    (ボタンが押されるたびに)、新しいコンポーネントを追加するときダウン「より古い」コンポーネントをシフトする簡単な方法はありますか?

  25. 25

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

  26. 26

    TYPO3-静的テンプレートのコンテンツを表示する(簡単な)方法はありますか?

  27. 27

    matplotlibでスクロールする垂直線をアニメーション化する簡単な方法はありますか?

  28. 28

    春のコンテンツネゴシエーションにcsv MimeTypeを追加するには?

  29. 29

    ClassLibraryがセッション値を取得する簡単な方法はありますか?

ホットタグ

アーカイブ