WebAPIを実装する

Web API をさまざまな方法で実装してみます。

仕様

  • HTTP のエンドポイントを持つ

    • POST book
      • データを登録できる
      • フォーマットは{"name":"NAME", "lang2": "ja"}
      • 成功時のステータスコードは 201、Location Header に URL をセットして返す
      • パラメータ不正時は 4xx を返す
    • GET book/id
      • 登録したデータを参照できる
      • フォーマットは{"name":"NAME", "lang2": "ja", "createdAt": "2000-01-01T00:00:00"}
      • 存在しないときは 404 を返す
  • データを DB に保存する。DB は SQLite3 を利用する

  • ヘルスチェック用のエンドポイントを持つ

  • ログはプレーンテキストと JSON から選択できる

  • ログは標準出力に出力する

  • アクセスログを出力する

  • SQL ログを出力する

  • API Spec をブラウザで確認できる

    • 設定で無効にできる
  • DB にアクセスするテストコードがある

  • HTTP 呼び出しのテストコードがある

  • リンターがある

  • フォーマッターがある

実装例

  • Python + FastAPI + SQLAlchemy