⚡ FastAPI는 현대적이고, 빠르며, 파이썬 표준 타입 힌트에 기초한 Python3.6+의 API를 빌드하기 위한 웹 프레임워크입니다.
장고 및 플라스크와 같은 파이썬 웹 프레임워크는 주로 웹 서비스에 초점을 두고 있었지만, FastAPI는 API(Application Programming Interface)를 만드는데 치중되어 있습니다.
FastAPI로 작성한 API는 React나 Vue.js, Svelte와 같은 Frontend 웹 프레임워크에서 사용할 수 있고, 안드로이드나 아이폰 앱에서도 사용할 수 있습니다. 만약 장고나 플라스크로 웹 서비스를 만들었다면 이에 대응하는 안드로이드나 아이폰 앱을 위한 API 개발을 따로 해야 하지만, FastAPI는 한번 만든 API를 여러 클라이언트에서 추가 작업 없이 사용할 수 있습니다.

ASGI(Asynchronous Server Gateway Interface) 서버로, 빠르고 성능이 좋으며 코드가 간단하고, 버그가 적다는 장점을 가지고 있습니다.
FastAPI 프레임워크만으로는 웹 개발을 할 수 없으며, ASGI와 호환되는 웹 서버가 필요한데, 그렇기 때문에 FastAPI로 구현한 웹을 서버에 띄우려면 uvicorn을 통해 서버를 생성해주는 작업을 필수적으로 거쳐야 합니다.
uvicorn main:app --reload
uvicorn main:app 명령은 다음을 의미합니다:main: 파일 main.py (파이썬 "모듈").app: main.py 내부의 app = FastAPI() 줄에서 생성한 오브젝트.-reload: 코드 변경 후 서버 재시작. 개발에만 사용.
빠른 속도
FastAPI는 파이썬 웹 프레임워크 중 가장 빠르다고 알려져 있습니다.
빠른 구현
API 개발은 보통 입출력 양식을 정하고, 기능을 구현한 후, 테스트하는 순서로 진행됩니다. FastAPI는 입출력을 정의하고, 입출력 값의 검증을 빠르고 안전하게 할 수 있습니다. (with Pydantic) 그리고 작성한 API는 자동으로 생성되는 API 문서를 통해 손쉽게 테스트할 수 있습니다. (with Swagger)
테스트 가능한 API 문서
FastAPI로 작성한 API는 API 사용법에 관한 문서를 따로 작성할 필요 없이, 문서가 자동으로 생성됩니다.
Swagger UI docs에서는 API 동작(HTTP method : GET, POST, PUT, DELETE)을 테스트 해 볼 수 있으며, ReDoc은 Read Only 형태로 제공되는 API 문서입니다.
적은 버그
from fastapi import FastAPI
app = FastAPI()
from fastapi.responses import FileResponse
@app.get("/")
def hello():
return FileResponse("index.html")
@app.get("/data")
def hello():
return {'hello': 1313}
@app.get("/")와 같이 데코레이터를 사용하여 해당 URL에 대한 함수를 정의할 수 있습니다.<div>안녕</div>)
