Fastapi는 파이썬 3.6 이상 버전 기반의 웹프레임워크다.
링크 : https://fastapi.tiangolo.com/
성능 높고 고성능이고 배우기 쉬운 등등 하여간 좋은 성능이라고 문서에 적혀있다.
설치
pip를 통해 프레임워크를 설치할 수 있다.
ubuntu@DESKTOP-U7AMJHK:~$ pip install fastapi
Collecting fastapi
Downloading fastapi-0.68.0-py3-none-any.whl (52 kB)
|████████████████████████████████| 52 kB 315 kB/s
Collecting starlette==0.14.2
Downloading starlette-0.14.2-py3-none-any.whl (60 kB)
|████████████████████████████████| 60 kB 3.0 MB/s
Collecting pydantic!=1.7,!=1.7.1,!=1.7.2,!=1.7.3,!=1.8,!=1.8.1,<2.0.0,>=1.6.2
Downloading pydantic-1.8.2-cp38-cp38-manylinux2014_x86_64.whl (13.7 MB)
|████████████████████████████████| 13.7 MB 12.2 MB/s
Collecting typing-extensions>=3.7.4.3
Downloading typing_extensions-3.10.0.0-py3-none-any.whl (26 kB)
Installing collected packages: starlette, typing-extensions, pydantic, fastapi
Successfully installed fastapi-0.68.0 pydantic-1.8.2 starlette-0.14.2 typing-extensions-3.10.0.0
uvicorn도 함께 설치한다.
pip install uvicorn
간단 예제 실행
# main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
fastapi모듈에서 FastAPI을 import해와서 사용한다.
FastAPI()를 통해 초기 서버 모듈을 초기화한다.
아래 명령어를 통해서 프로그램을 실행한다.
$ uvicorn main:app --reload
INFO: Will watch for changes in these directories: ['~~~']
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [246] using statreload
INFO: Started server process [248]
INFO: Waiting for application startup.
INFO: Application startup complete.
이 때 --reload는 개발용 옵션으로, 코드가 수정되면 다시 서버가 실행되도록 하는 옵션이다.
{address}/docs 로 들어가면 Swagger UI와 연동되어 API 목록이 출력된다.
{address}/redoc으로 들어가면 ReDoc과 연동되어 API 목록이 출력된다.