Newer
Older
jsonschema / README.md
Seiji Sogabe on 31 Oct 2015 1 KB fixed

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とする