レッスン 6
API と設定ファイルにおける JSON
REST payload、設定ファイル、XML や YAML との比較。
文脈の中で JSON を理解すると、形式を賢く選び、ドキュメントをより効果的に読めるようになります。
REST API
HTTP API はボディに JSON を使うことが多く、クエリなし POST payload でも使われます。
POST /users HTTP/1.1
Content-Type: application/json
{"name": "Ada", "role": "admin"}
レスポンスも同じ形式です。ステータスコードは HTTP ヘッダーにあり、JSON はビジネスデータを運びます。スキーマは OpenAPI、JSON Schema、または文章の例で文書化されることがあります。
設定ファイル
package.json、tsconfig.json、多くの CI 設定などは JSON です。利点:
- プログラムがパースしやすい
- エディタで広くサポートされている
- 整形すればバージョン管理で diff しやすい
トレードオフ: 厳格な JSON にはコメントがない(一部ツールはコメント付き JSONC を受け付けるが、移植性のある設定は標準 JSON に留める)。
JSON vs XML
| JSON | XML | |
|---|---|---|
| 冗長性 | 通常より短い | タグが多くなりがち |
| 型 | 最小限(string、number など) | 属性 + テキストノード |
| スキーマ | JSON Schema、OpenAPI | XSD、DTD |
| 今日の典型的用途 | Web API | レガシーエンタープライズ、ドキュメント |
JSON vs YAML
YAML は設定に人間に優しく、コメントをサポートします。Kubernetes や Docker Compose で一般的です。落とし穴: インデントに敏感、大規模では安全なパースが難しい。JSON はより厳格で信頼できない入力に安全。YAML は人間が大きな設定を手で編集するときに選ばれることが多い。
セキュリティ上の注意
JSON テキストを eval() しない — 専用ライブラリでパースしてください。信頼できない payload にはスキーマで検証し、サイズを制限して DoS リスクを減らしましょう。
コースのまとめ
JSON の構文、型、構造、よくあるエラー、実世界での使い方の基礎が身につきました。API ドキュメントを読む、payload を設計する、pull request で設定変更をレビューするときにこれを活かしてください。