【FastAPI】routerでエンドポイントを登録する【入門】

FastAPIでファイルを分割してエンドポイントを登録する方法をご紹介いたします。

from fastapi import FastAPI

app = FastAPI()

@app.get('/hello')
def index():
    return 'Hello World'

main.pyにはあらかじめ上記コードを作成しております。

この記事のサンプルコード

目次

routerの作成

まずはエンドポイント作成用のrouterディレクトリを作成し、中にarticles.pyを作成します。

routerのインスタンス化

routerのインスタンスを作成します。

from fastapi import APIRouter

router = APIRouter(
    prefix='/article',
    tags=['article']
)

prefixは、これから作成するエンドポイントの頭のURLを表しています。

tagshttp;//127.0.0.1/docsの分類として用いられます。

エンドポイントの作成

ここでは簡単なエンドポイントを二つ作成してみます。

  • 全ての記事を取得できる/article/all
  • 任意のIDの記事を取得できる/article/{id}
from fastapi import APIRouter

router = APIRouter(
    prefix='/article',
    tags=['article']
)

@router.get('/all')
def get_all_articles():
    return {'message': f'All articles'}

@router.get('/{id}')
def get_article(id: int):
    return {'message': f'Blog is {id}'}

これらを作成しました。prefix/articleとしているので各エンドポイントには追記不要です。

しかし、このままではドキュメントを確認してもarticleエンドポイントは表示されていません。インスタンスに登録する必要があります。

main.pyへ登録

main.pyにあるappインスタンスにrouterを含めます。

routerからarticleをインポートして、app.include_router(articles.router)で登録しています。

from fastapi import FastAPI
from router import articles

app = FastAPI()
app.include_router(articles.router)

@app.get('/hello')
def index():
    return 'Hello World'

これでドキュメントを確認して登録されていれば完了です。

この記事のサンプルコード

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

コメント

コメントする

目次
閉じる