JSON Schema の感じをつかむ
JSON Schema を使ってみた。今回の内容は2つ。
- JSON Schema への参考資料のリンクを整理する
- PHPでバリデーションのサンプルをメモする
JSON Schema について
JSON はJavaScriptのオブジェクト表現をベースにしたデータ記述言語で様々なデータ構造を記述できる。 データがあると型・メタ情報を扱いたくなる。JSONデータに対するスキーマ定義の仕様が幾つかある。 JSON Schemaは有力候補の1つ。
JSON Schema 資料集
公式ドキュメントは以下のdraftへのリンクを掲載している。
- JSON Schema: core definitions and terminology
- JSON Schema: interactive and non interactive validation
- JSON Hyper-Schema: Hypertext definitions for JSON Schema
また、JSON Schema では以下の形式を利用している。
以下にJSON Schema: core definitions and terminologyのアブストを翻訳する。
JSON Schemaは、メディアタイプ"application/schema+json"・JSONデータの構造を定義するJSON に基づいた形式を定義する。 JSON Schema は、どのようなJSONデータが与えられたアプリケーションに要求され、またどのように作用するのか、について契約する。 JSON Schema は、JSONデータに関するバリデーション・ドキュメンテーション・ハイパーリンクナビゲーション・相互作用制御を定義する様に意図している。
JSON Schema defines the media type "application/schema+json", a JSON based format for defining the structure of JSON data. JSON Schema provides a contract for what JSON data is required for a given application and how to interact with it. JSON Schema is intended to define validation, documentation, hyperlink navigation, and interaction control of JSON data.
PHP で使ってみる
以下のJSON Schemaを準備してPHPでバリデーションを試してみた。
|
|
PHP実装をインストールする
justinrainbow/json-schemaをcomposer でインストールする。
|
|
PHP でバリデーションのコードを書く
書いたコードは以下の通り。
|
|
実行結果を見る
実行結果は以下。結果を見るとrequired なidが必須って怒られているのでうまく行っていそう。
|
|