FastAPI 시작하기

snooby·2022년 8월 19일
1

⚒ Python

목록 보기
5/14
post-thumbnail

FastAPI는 현대적이고, 빠르며(고성능), 파이썬 표준 타입 힌트에 기초한 Python3.6+의 API를 빌드하기 위한 웹 프레임워크입니다.

다음과 같은 주요 특징을 가지고 있습니다.

  1. 빠름: (Starlette과 Pydantic 덕분에) NodeJS 및 Go와 대등할 정도로 매우 높은 성능. 사용 가능한 가장 빠른 파이썬 프레임워크 중 하나.
  2. 빠른 코드 작성: 약 200%에서 300%까지 기능 개발 속도 증가. *
  3. 적은 버그: 사람(개발자)에 의한 에러 약 40% 감소. *
  4. 직관적: 훌륭한 편집기 지원. 모든 곳에서 자동완성. 적은 디버깅 시간.
  5. 쉬움: 쉽게 사용하고 배우도록 설계. 적은 문서 읽기 시간.
  6. 짧음: 코드 중복 최소화. 각 매개변수 선언의 여러 기능. 적은 버그.
  7. 견고함: 준비된 프로덕션 용 코드를 얻으십시오. 자동 대화형 문서와 함께.
  8. 표준 기반: API에 대한 (완전히 호환되는) 개방형 표준 기반: OpenAPI (이전에 Swagger로 알려졌던) 및 JSON 스키마.

FastAPI를 사용하기 위해서는 필수적으로 아래 2개의 패키지를 설치해야합니다.

pip install fastapi
# 서버 역할을 하는 uvicorn
pip install uvicorn

가장 단순한 FastAPI 파일을 만들어 보겠습니다.
저는 Pycharm을 사용해 프로젝트를 만들고 실행시킬 가상환경까지 만들어 진행하겠습니다.

from fastapi import FastAPI

app = FastAPI()


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


@app.get("/hello/{name}")
async def say_hello(name: str):
    return {"message": f"Hello {name}"}

위처럼 작성한 FastAPI를 실행시킵니다.
서버 실행 코드

uvicorn main:app --reload

http://127.0.0.1:8000 에 가면 json 응답을 볼 수 있습니다.

FastAPI는 뿐만아니라 대화형 API를 제공해주어 API문서를 쉽게 파악할 수 있습니다.

들어가보면 main.py에서 생성한 API 목록들을 확인해 볼 수 있으며
직접 인자를 작성하여 호출 테스트도 해볼 수 있습니다.

이제 앞서 작성한 main.py 파일 소스코드를 알아봅시다.

# FastAPI 임포트
# FastAPI는 API에 대한 모든 기능을 제공하는 파이썬 클래스
from fastapi import FastAPI

# FastAPI 클래스의 인스턴스 입니다.
# 모든 API를 생성하기 위한 상호작용의 주요 지점입니다.
# uvicorn으로 서버를 실행시 사용되는 인자 또한 여기 main의 app을 의미합니다.
app = FastAPI()


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

# 경로 매개변수 
@app.get("/hello/{name}")
# 타입이 있는 매개변수 
async def say_hello(name: str): 
    return {"message": f"Hello {name}"}
profile
DevOps 🐥

0개의 댓글