포스트

파이썬 ( Python ) - FastAPI 배워보기

출처 : tiangolo

소개

FastAPI 란?

Python을 사용하여 빠르게 웹 API를 쉽게 구축할 수 있게 해주는 웹 프레임워크입니다.

특징

  • 고성능 : 매우 빠른 성능 제공
  • 자동문서화 : Swagger UI와 ReDoc을 통해 API 문서 생성
  • 간단한 개발 : 빠르고 간단한 개발을 가능하게 하는 직관적인 디자인

가상환경 구축

window

1
2
3
4
5
# python -m venv 가상환경이름
python -m venv myenv

# 가상환경활성화 : 가상환경이름\Scripts\activate
myenv\Scripts\activate

mac

1
2
3
4
5
# python3 -m venv 가상환경이름
python3 -m venv myenv

# 가상환경활성화 : 가상환경이름/bin/activate
source myenv/bin/activate

밑 코드를 통해 현재 가상환경이 활성화 됐는지 확인할 수 있다. 활성화 되지 않았다면 빈 줄이 출력된다.

1
2
3
4
5
# windows
echo %VIRTUAL_ENV%

# mac
echo $VIRTUAL_ENV

첫걸음!!

fastapi 설치

1
pip install fastapi

main.py 파일 구성

1
2
3
4
5
6
7
8
# main.py 파일 만들기
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
    return {"message":"Hello World"}

서버 실행

1
uvicorn main:app --reload
  • main은 Python 파일의 이름
  • app은 FastAPI 인스턴스의 이름입니다.
  • —reload 옵션은 코드 변경 시 자동으로 서버를 재시작합니다. 개발 중에 매우 유용

브라우저에 localhost:8000으로 접속하면 밑과 같은 화면이 나오면 성공!

localhost:8000/docs 로 접속시 api 문서도 확인가능!

다양한 api 구축방법

경로 매개 변수 방식

파이썬의 포맷 문자열 리터럴에서 사용되는 문법을 이용하여 경로 “매개변수” 또는 “변수”를 선언 할 수 있다.

1
2
3
4
5
6
7
8
9
# main.py 파일 만들기
from fastapi import FastAPI

app = FastAPI()

@app.get("/items/{item_id}")
# async def read_item(item_id: int): 매개변수 타입을 활용할 수 있다.
async def read_item(item_id):
    return {"item_id": item_id}

경로의 {item_id}의 값은 함수 item_id 인자로 전달됩니다.

localhost:8000/item_id/test 로 접속시 화면에 test 출력 확인가능

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.