お知らせ

2026-01-31

OpenAPI準拠・RFC 9457対応リファクタリングの実施について

概要

utayomiのAPIをOpenAPI 3.1.0仕様に準拠させ、エラーレスポンスをRFC 9457(Problem Details for HTTP APIs)に統一するリファクタリングを実施しました。合わせてエンドポイントの命名規則を単数形に統一し、Spectralによる自動Lintを導入しました。

変更内容

  • エラーレスポンスをRFC 9457準拠の application/problem+json 形式に統一
  • エンドポイントパスを単数形に変更(/api/keys → /api/key、/api/v1/speakers → /api/v1/speaker)
  • OpenAPI 3.1.0仕様書(openapi.yaml)を新規作成
  • Spectral(API Lintツール)を導入
  • エラーメッセージ・ログメッセージを単一ファイルに一元管理

新しいエラーレスポンス形式

全てのAPIエラーレスポンスは以下のRFC 9457形式で返されます。Content-Typeは application/problem+json です。

{
  "type": "https://utayomi.com/errors/validation-error",
  "title": "Bad Request",
  "status": 400,
  "detail": "リクエストボディが不正です",
  "instance": "/api/v1/synthesis",
  "errors": [...]
}

エンドポイントの変更

変更前変更後
/api/keys/api/key
/api/keys/:id/api/key/:id
/api/v1/speakers/api/v1/speaker

ユーザーへの影響

  • APIキー管理のエンドポイントパスが変更されました(/api/keys → /api/key)
  • スピーカー一覧のエンドポイントパスが変更されました(/api/v1/speakers → /api/v1/speaker)
  • エラーレスポンスのJSON構造が変更されました(RFC 9457形式)
  • 既存のAPIキーはそのままご利用いただけます

本変更は後方互換性を伴わない破壊的変更です。旧エンドポイントは廃止されますので、API連携をされている場合はパスの更新をお願いいたします。