API の欠けたフィールドの比較
API が新しくなって、消えた項目と型が変わった項目を洗い出す。
旧版と新版の API 応答(JSON)を貼り付けると、旧版にあって新版に無い項目と、型が変わった項目をパス付きで一覧にします。値の違いは見ず、構造(項目の有無と型)だけを比べます。入力はブラウザの中だけで処理します。
旧版と新版の JSON を貼って、欠損と型の変更を探す
入力した内容は送信されません。貼り付けた文字や選んだファイルは、お使いのブラウザの中だけで処理します。本サイトのサーバーや第三者へ送信・保存しません(通信を禁止する設定でページを配信しています)。
結果
エラー 0 件・警告 2 件・情報 1 件
指摘(エラー・警告・情報)
- 警告 $.name 旧版にあった $.name が新版にありません。この項目を使っている利用側が壊れるおそれがあります。
- 警告 $.price $.price の型が 数値 から 文字列 に変わりました(RFC 8259 の値の型で比較)。
- 情報 $.email 新版に $.email が増えています(旧版にはありません)。
| 判定 | 欠損 1 件・型変更 1 件 |
|---|---|
| 旧版のパス数 | 4 個 |
| 新版のパス数 | 4 個 |
| 欠損 | 1 件 |
| 型変更 | 1 件 |
| 追加 | 1 件 |
| 配列の扱い | 全要素をまとめて([] として)比べる |
構造の差(欠損・型変更・追加)
| パス | 判定 | 旧版の型 | 新版の型 |
|---|---|---|---|
| $.name | 欠損 | 文字列 | (なし) |
| $.price | 型変更 | 数値 | 文字列 |
| 追加 | (なし) | 文字列 |
初期表示は入力例「name が消え、price が文字列になった」の結果です。入力を変えるとその場で処理し直します。判定の根拠は仕様と根拠にまとめています。
ご利用にあたって
- 比べるのは貼り付けた応答例の構造だけです。実際の API の仕様や互換性の保証ではありません。
- 大きな JSON はお使いの端末の性能によって処理に時間がかかることがあります。
使い方
- 旧版と新版の JSON を、それぞれの欄に貼り付けます。応答例は 1 件でも、代表的な複数件でも構いません。
- 配列の比べ方を選びます。要素の形が揃っている一覧なら「全要素をまとめて」、位置に意味がある配列なら「要素ごとに」を選びます。
- 表で、欠損(旧版にあって新版にない)・型変更・追加を確かめ、欠損と型変更から先に利用側を直します。
入力例と結果
代表的な入力・境界の入力・壊れた入力の例です。例ごとに入力・出力・指摘と、その結果になる理由(検算)を載せています。
| 入力例 | 結果 |
|---|---|
| name が消え、price が文字列になった | エラー 0 件・警告 2 件・情報 1 件 |
| 配列の一部の要素にだけ qty がある | エラー 0 件・警告 1 件・情報 0 件 |
| 同じ入力を要素ごとに比べる | エラー 0 件・警告 2 件・情報 0 件 |
| null だった項目が文字列になった | エラー 0 件・警告 1 件・情報 0 件 |
| 値だけが変わり、構造は同じ | エラー 0 件・警告 0 件・情報 1 件 |
| 旧版の末尾にカンマがあり構文エラー | エラー 1 件・警告 0 件・情報 0 件 |
このツールでできないこと(制約)
- 値そのものの違い(金額や文字列の変更)は比べません。構造(項目の有無と型)だけを見ます。値の差分は別の JSON 差分ツールを使ってください。
- 配列をまとめて比べるときは、一部の要素にしか無い項目も「ある」と数えるため、要素ごとの欠損は見つかりません。
- 数値の整数と小数(1 と 1.5)は同じ「数値」です。文字列の中身が日付かどうかなどの意味の違いは見ません。
- JSON Schema や OpenAPI 定義そのものの比較はしません。実際の応答例を貼って比べます。
よくある質問
API の項目が消えたかどうか、これで確実に分かりますか?
貼り付けた応答例に出てくる範囲では分かります。ただし応答例に現れない任意の項目は、そもそも比べられません。代表的なパターンを複数件まとめた応答例を使うと見落としが減ります。
数値が文字列に変わったときも見つかりますか?
見つかります。100 が "100" に変わるような変更は RFC 8259 の値の型が変わるため「型変更」として表示します。利用側で計算に使っている項目では特に影響が大きい変更です。
貼り付けた JSON はどこかに送られますか?
送られません。処理はお使いのブラウザの中だけで行い、ページは通信を禁止する設定(CSP の connect-src)で配信しています。社外秘の JSON でも内容を送信しませんが、共用の端末では使い終わったらページを閉じてください。