Skip to content

2: シンプルなWebAPI

前のステップに続いて、このステップでもシンプルなWebAPIを追加してみましょう。
シンプルな内容から始めて少しずつ機能を追加していきましょう。

💡 WebAPI:
WebAPIとはクライアントがサーバーに処理を依頼するときに使う「問い合わせ窓口」です。
サーバーはWebAPIに届いたリクエストに応じてデータの取得などの処理を実行します。

具体例:

  • 天気アプリが「今日の東京の天気を教えて」と問い合わせる → WebAPIが天気データを返す
  • SNSアプリが「この投稿を保存して」と送信する → WebAPIが投稿をデータベースに保存する
  • 決済アプリが「この商品の代金を処理して」と要求する → WebAPIが決済処理を実行する
  • 地図アプリが「この住所の位置情報を教えて」と問い合わせる → WebAPIが座標データを返す

WebAPIを活用することで自分のアプリに様々な機能を追加できます。

todo-api/app/main.py を以下の内容に変更して下さい。

todo-api/app/main.py
from fastapi import FastAPI
# 1. FastAPIアプリケーションの作成
app = FastAPI()
# 2. Todo一覧を取得するAPIの定義
@app.get("/todos")
def read_todos():
return [
{"id": 1, "title": "買い物に行く", "completed": False},
{"id": 2, "title": "宿題をする", "completed": True}
]
  1. FastAPIアプリケーションの作成

    app = FastAPI()
    • FastAPI はAPIのすべての機能を提供するPythonクラスです
    • FastAPI クラスのインスタンスを作成します
    • このインスタンスを使ってAPIを定義します
  2. Todo一覧を取得するAPIの定義

    @app.get("/todos")
    def read_todos():
    return [
    {"id": 1, "title": "買い物に行く", "completed": False},
    {"id": 2, "title": "宿題をする", "completed": True}
    ]
    • @app.get("/todos")/todos パスへのGETリクエストを処理するAPIを定義します
    • return で指定したデータがAPIのレスポンスとしてブラウザに返されます
    • 今はデータをプログラムの中に直接書いていますが後でデータベースから取得するように変更します
  1. 開発サーバーを起動します:

    Terminal window
    uvicorn app.main:app --reload
  2. ブラウザで http://localhost:8000/todos を開きます。

    以下のように表示されればOKです。

    [
    {
    "id": 1,
    "title": "買い物に行く",
    "completed": false
    },
    {
    "id": 2,
    "title": "宿題をする",
    "completed": true
    }
    ]

以下の質問に答えて、学習内容を確認しましょう!

  1. FastAPIでAPIを定義する際の正しい書き方は?

    • A: @app.get("/path")
    • B: @get("/path")
    • C: app.get("/path")
答えを見る

答え: A: @app.get("/path")

  • FastAPIでは、デコレータ(@で始まる記法)を使ってAPIを定義します
  • appはFastAPIのインスタンスで、getはHTTPメソッドを指定します
  • 参考: FastAPI公式ドキュメント

このステップでは以下について学びました。

  • FastAPIの基本

    • アプリケーションの作成方法
    • APIを追加する方法
    • レスポンスの返し方
  • 開発の基本

    • ファイルの編集方法
    • サーバーの起動方法