Fast API란?

- 공식문서 : https://fastapi.tiangolo.com/ko/

 

FastAPI

FastAPI FastAPI 프레임워크, 고성능, 간편한 학습, 빠른 코드 작성, 준비된 프로덕션 문서: https://fastapi.tiangolo.com 소스 코드: https://github.com/tiangolo/fastapi FastAPI는 현대적이고, 빠르며(고성능), 파이썬

fastapi.tiangolo.com

- 공식문서에 따르면 FastAPI는 현대적이고 빠른 파이썬 기반의 웹 프레임워크 라고 합니다.

- 빠른 것으로는 최근 많은 서비스에 사용되는 NodeJS, Go와 대등할 정도로 매우 높은 성능을 자랑한다고 합니다.

또한 Swagger를 기본적으로 제공하고있어 문서를 자동화할 수 있으며 테스트 또한 손쉽게 가능합니다.

 

Fast API 설치

- 기본적으로 python이 설치되어있는 개발환경을 기준으로 작성하였습니다.

$ pip install fastapi

$ pip install "uvicorn[standard]"

- 여기서 uvicorn은 fastapi를 구동하기 위한 웹서버입니다.

https://www.uvicorn.org/

 

Uvicorn

An ASGI web server, for Python. Introduction Uvicorn is an ASGI web server implementation for Python. Until recently Python has lacked a minimal low-level server/application interface for async frameworks. The ASGI specification fills this gap, and means w

www.uvicorn.org

 

Fast API 기본예제 

from typing import Union

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: Union[str, None] = None):
    return {"item_id": item_id, "q": q}

 

- main.py 파일을 만들고 간단한 get api 예제를 작성 후 웹 서버를 실행합니다.

 

- 서버실행

$ uvicorn main:app --reload

위 명령어 실행 시 웹 서버가 실행되며, --reload는 코드 변경 시 자동으로 적용 및 로딩이 되는 것이기 때문에 개발서버에서만 사용이 권장됩니다.

 

Swagger 

- 웹 서버 실행 후 http://localhost:8000/docs 로 접속하면 자동으로 Swagger에 API 정보가 등록되어 있는 것을 확인할 수 있습니다.

swagger
swagger

- 또한 이 Swagger에서는 테스트를 지원하니 편하게 테스트가 가능합니다.

 

swagger2
swagger2

 

- 굉장히 빠르게 서버 구성이 가능하며 실행 또한 빠르고 직관적이며, 개발 또한 쉽게 할 수 있는 강력한 프레임워크라고 생각됩니다.