본문 바로가기

Python

[FastAPI] FastAPI란 무엇인가?

728x90
반응형

FastAPI는 Python으로 작성된 현대적인 웹 프레임워크로, 빠르고 효율적인 API를 구축하는 데 사용됩니다. 주요 특징으로는 높은 성능, 직관적인 사용법, 자동 생성되는 문서화, 그리고 타입 힌팅 지원을 통한 코드 품질 향상을 들 수 있습니다.

FastAPI의 주요 특징:

  1. 고성능: FastAPI는 Starlette과 Pydantic을 기반으로 하여 매우 높은 성능을 자랑합니다. 이는 ASGI(Asynchronous Server Gateway Interface)를 사용하여 비동기 기능을 지원하기 때문입니다.
  2. 자동 문서화: FastAPI는 OpenAPI와 JSON Schema를 사용하여 자동으로 API 문서를 생성합니다. 개발자는 API 문서를 수동으로 작성할 필요가 없으며, Swagger UI와 ReDoc을 통해 실시간으로 확인할 수 있습니다.
  3. 타입 힌팅 지원: Python의 타입 힌팅 기능을 활용하여 코드의 가독성을 높이고, 자동 완성 및 타입 검사를 통해 오류를 줄일 수 있습니다.
  4. 비동기 지원: 비동기 함수와 함께 사용할 수 있어, 대규모의 동시성을 요구하는 애플리케이션에서도 효율적으로 동작합니다.

예제를 통해 FastAPI의 기본 사용법을 살펴보겠습니다.

예제: 간단한 FastAPI 애플리케이션

FastAPI 설치

pip install fastapi uvicorn

애플리케이션 코드 작성

from fastapi import FastAPI

app = FastAPI()

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

@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

애플리케이션 실행

uvicorn main:app --reload

여기서 main은 Python 파일 이름이고, app은 FastAPI 인스턴스입니다. --reload 옵션은 코드 변경 시 자동으로 서버를 다시 시작하게 합니다.

API 사용

  • http://127.0.0.1:8000/에 접속하면 {"message": "Hello, World!"}가 반환됩니다.
  • http://127.0.0.1:8000/items/42?q=test에 접속하면 {"item_id": 42, "q": "test"}가 반환됩니다.

자동 생성된 문서 확인

FastAPI는 API 문서를 자동으로 생성하여 제공합니다:

  • Swagger UI: http://127.0.0.1:8000/docs
  • ReDoc: http://127.0.0.1:8000/redoc

이 두 인터페이스를 통해 API의 모든 엔드포인트와 입력/출력 모델을 시각적으로 확인하고 테스트할 수 있습니다.

728x90
반응형