はじめに
FastAPI は、Pythonの標準である型ヒントに基づいてPython 3.6 以降でAPI を構築するための、モダンで、高速(高パフォーマンス)な、Web フレームワークです。 fastapi.tiangolo.com
fastapiはstarletteをラッピングしているので、基本starletteが、すごいんじゃないかとおもう。 www.starlette.io
docker-compose.yml
version: '3'
services:
fastapi:
container_name: backend
build:
context: .
dockerfile: Dockerfile-fastapi
volumes:
- ./app:/srv/api/src
ports:
- "8000:8000"
tty: true
Dockerファイル
FROM python:3.9-alpine RUN apk add --no-cache mariadb-dev gcc libc-dev WORKDIR /srv/api/src ADD requirements.txt . RUN pip install --trusted-host pypi.python.org -r requirements.txt COPY main.py . CMD ["uvicorn", "main:app", "--reload", "--host", "0.0.0.0", "--port", "8000"]
requirements.txtファイル
uvicorn fastapi mysqlclient sqlalchemy
main.pyファイルの中身
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
動作確認
- localhost:8000にアクセスするとブラウザに下記のように表示される
{"Hello":"World"}