【FastAPI入門】Postしてみる

前回、FastAPIを起動してみて、Getしてみました。今回はPostしてみます。

ソースコード

早速サンプルコードを実装してみます。

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class SampleDTO(BaseModel):
    text1: str
    text2: str

@app.post("/test_post")
async def sample_post(sample: SampleDTO):
    return sample

簡単に解説します。
以下のコードでリクエストボディの型を定義しています。

class SampleDTO(BaseModel):
    text1: str
    text2: str

FastAPIではリクエストボディの型をpydanticという型指定ができるライブラリを用いてます。
これを使うことで、型が異なった時にエラーを吐き出してくれます。

以下のコードでPostについての実装しています。
@app.postデコレーターをつけることで、Postを定義しています。

@app.post("/test_post")
async def sample_post(sample: SampleDTO):
    return sample

この関数の引数でSampleDTOという先ほど定義した型のリクエストを受け取ることを宣言しています。

動かしてみる

では、これを先ほど同様に動かしてみます。

uvicorn main:app --reload

FastAPIではデフォルトでSwagger UIが組み込まれているので、
http://127.0.0.1:8000/docs にアクセスすることで、Swagger UIを起動することができます。

右上の下矢印をクリックします。

右上のtry it outをクリックします。

Request bodyに適当に入力します。今回はtext1にfoo、text2にbarと記述して、Excuteボタンを押してPostしてみます。


今回はリクエストをそのまま返しているため、リクエストと同じデータが帰ってきます。

参考文献

コメント

タイトルとURLをコピーしました