概要
- 言語はPython
- PythonパッケージのFastAPIを使用
FastAPI
ソースコード
- http://localhost:8000に対して、POST,GETすることでデータを送信・取得することができます。
from fastapi import FastAPI import csv app = FastAPI() # 爆速でローカル環境にAPIサーバーを構築する。 @app.post("/") def post_root(data): with open('./data/data.csv','w',newline='') as f: writer = csv.writer(f) writer.writerow(data.split(",")) return {"PostData": data} @app.get("/") def read_root(): with open('./data/data.csv','r') as f: reader = csv.reader(f) data_list = [row for row in reader] return {"GetData": data_list}
importするパッケージ
- パッケージとしては、FastAPIとuvicornが必要です。
anyio==3.5.0 asgiref==3.5.1 click==8.1.3 colorama==0.4.4 fastapi==0.75.2 h11==0.13.0 idna==3.3 pydantic==1.9.0 sniffio==1.2.0 starlette==0.17.1 typing-extensions==4.2.0 uvicorn==0.17.6
- fastapiとcsvをインポートします。
- csvはデータをcsvで保存するためにインポートしているので、保存するものによって適宜変更してください。
from fastapi import FastAPI import csv app = FastAPI()
- postメソッドで動作する部分の関数です。
@app.post("/") def post_root(data): # dataフォルダにPOSTされたdataをcsvとして保存しています。 with open('./data/data.csv','w',newline='') as f: writer = csv.writer(f) writer.writerow(data.split(",")) #返り値としては、POSTしたデータをそのまま返しています。 return {"PostData": data}
- GETメソッドで動作する部分の関数です。
@app.get("/") def read_root(): # dataフォルダにあるCSVを読み込んでlistにします。 with open('./data/data.csv','r') as f: reader = csv.reader(f) data_list = [row for row in reader] # listにしたcsvデータを返り値にしています。 return {"GetData": data_list}
- デコレータ(@app.postみたいなやつ)については、下記を参照
FastAPIのデコレータについて
FastAPIの起動
- 上記のソースコードがあるフォルダ内で、下記のコマンドを実行(コマンドプロンプトもしくはターミナルで実行)

uvicorn main:app –reload
- 実行するとターミナル上で下記のようにAPIサーバーが立ち上がる

- APIサーバーが立ち上がった状態で、下記のURLにアクセスするとAPIのテスト等が行えるページにアクセスできる。
http://localhost:8000/docs
- アクセスすると、下記のようなページが表示される。
- try it outボタンで、各メソッド(POST,GET)をテストすることができる。

まとめ
- FastAPIでローカル環境にAPIサーバーを構築した。
- めっちゃ簡単!
コメント