Seiji Sogabe authored on 31 Oct 2015
src コメントを追加 2 years ago
.gitignore first commit 2 years ago
README.md fixed 2 years ago
pom.xml RestEasy 2.2.7で動作するように修正 2 years ago
README.md

Json Schemaによるヴァリデーション

ダウンロード

  $ git clone http://gitbucket.buildria.com/git/sogabe/jsonschema.git

起動方法

  $ cd jsonschema
  $ mvn jetty:run

GET http://localhost:8080/rest/book

  • レスポンス
[
    {
        "isbn": "978-4844336389",
        "name": "スッキリわかるJava入門 第2版 (スッキリシリーズ) ",
        "price": 980
    },
    {
        "isbn": "978-4873117317",
        "name": "サイバーセキュリティプログラミング",
        "price": 500
    }
]

POST http://localhost:8080/rest/book

  • リクエスト

    {
         "isbn": "978-4844336900",
         "name": "スッキリわかるJava入門 第3版 ",
         "price": 9860
     }
  • レスポンス

    [
     {
         "isbn": "978-4873117317",
         "name": "サイバーセキュリティプログラミング",
         "price": 500
     },
     {
         "isbn": "978-4844336900",
         "name": "スッキリわかるJava入門 第3版 ",
         "price": 9860
     }
    ]

概略

流れ

  1. /rest/book にPOST
  2. /rest/bookに対応するリソースクラス BookResource#addBook(Book book)が実行対象となる
  3. リクエストをインターセプトし、JsonValidationIntercceptor#readを実行する
    1. リソースクラスのメソッドの引数Bookに対応するJSON Schemaオブジェクトをキャッシュから取得する
    2. 入力ストリームから入力のJSONオブジェクトを作成する
    3. JSON Schemaオブジェクトで、入力のJSONオブジェクトをチェックする
    4. 入力ストリームを再作成し、後続の処理を行う
  4. リソースクラスを実行する

JSON Schemaファイル

  • Bookに対応するJSON Schemaファイルは、src/main/resources/com/buildria/rest/jsonschema/Book.jsonとする