はじめに
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"}