카테고리 없음

Fastapi 에 대해서 알아보자

Taemy 2021. 9. 30. 23:01

Fastapi는 파이썬 3.6 이상 버전 기반의 웹프레임워크다.

링크 : https://fastapi.tiangolo.com/

 

FastAPI

FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for production Documentation: https://fastapi.tiangolo.com Source Code: https://github.com/tiangolo/fastapi FastAPI is a modern, fast (high-performance), web framework for buil

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 목록이 출력된다.