1. FastAPI란?
파이썬 3.6+를 기반으로 빠르게 API 서버를 구축할 수 있게 하는 새로운 웹 프레임워크이다.
Django에 비해 가벼우면서도 빠른 속도를 자랑한다.
2. 주요 특징
- NodeJS 및 Go와 비슷한 성능, 현존하는 파이썬 웹 프레임워크 중 가장 빠르다.
- 개발 속도가 빠르다
- 버그가 적다.
- 직관적이다
- 간편하다.
- 코드 중복을 최소화한다.
- 견고하다, 대화형 자동 설명서를 사용해서 실행 가능한 코드를 구축할 수 있다.
- 개방형 API 표준(OpenAPI&JSON)을 기반으로 한다.
Django나 Flask 등 기존 파이썬 웹 프레임워크에 비해 레퍼런스는 적지만, 공식문서가 아주 잘 되어있다.
앞으로 FastAPI를 이용해 프로젝트를 진행할 생각이고 관련된 내용을 블로그에 업로드할 예정이다.
마지막으로 공식문서에 나와있는 간단한 API 서버 구축 예제를 살펴보자.
3. 예제
1) 가상환경 설치 & 실행
# 가상환경 설치
$ python -m venv venv
# 가상환경 실행
$ source venv/scripts/activate # Windows
$ source venv/bin/activate # Mac
2) 프레임워크 설치
$ pip install fastapi
3) ASGI 서버 설치
$ pip install uvicorn[standard]
4) main.py 작성
from typing import Optional
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: Optional[str] = None):
return {"item_id": item_id, "q": q}
5) 서버 실행
$ uvicorn main:app --reload
6) 결과
결과확인: http://127.0.0.1:8000
Swagger: http://127.0.0.1:8000/docs
기본적으로 Swagger UI를 지원하기 때문에 간편하게 API를 테스트해볼 수 있다.
'웹 > FastAPI' 카테고리의 다른 글
[FastAPI] 이미지 파일 업로드하기 (0) | 2021.01.28 |
---|---|
[FastAPI] Query Parameters에 리스트 전달하기 (0) | 2021.01.20 |
[FastAPI] DB(MySQL) 연결하기 (0) | 2021.01.18 |