728x90
반응형
FastAPI는 Python으로 작성된 현대적인 웹 프레임워크로, 빠르고 효율적인 API를 구축하는 데 사용됩니다. 주요 특징으로는 높은 성능, 직관적인 사용법, 자동 생성되는 문서화, 그리고 타입 힌팅 지원을 통한 코드 품질 향상을 들 수 있습니다.
FastAPI의 주요 특징:
- 고성능: FastAPI는 Starlette과 Pydantic을 기반으로 하여 매우 높은 성능을 자랑합니다. 이는 ASGI(Asynchronous Server Gateway Interface)를 사용하여 비동기 기능을 지원하기 때문입니다.
- 자동 문서화: FastAPI는 OpenAPI와 JSON Schema를 사용하여 자동으로 API 문서를 생성합니다. 개발자는 API 문서를 수동으로 작성할 필요가 없으며, Swagger UI와 ReDoc을 통해 실시간으로 확인할 수 있습니다.
- 타입 힌팅 지원: Python의 타입 힌팅 기능을 활용하여 코드의 가독성을 높이고, 자동 완성 및 타입 검사를 통해 오류를 줄일 수 있습니다.
- 비동기 지원: 비동기 함수와 함께 사용할 수 있어, 대규모의 동시성을 요구하는 애플리케이션에서도 효율적으로 동작합니다.
예제를 통해 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
반응형
'Python' 카테고리의 다른 글
데이터 시각화를 빠르게! Streamlit으로 웹 애플리케이션 만들기 (0) | 2024.10.10 |
---|---|
Python 3.12의 혁신! 더욱 유연해진 f-string과 새로운 기능 탐구 (0) | 2024.09.24 |
왜 FastAPI는 최고의 선택인가? 빠른 API 개발을 위한 혁신적인 Python 프레임워크 (0) | 2024.09.09 |
Poetry란 무엇인가? (0) | 2024.07.08 |
[Coroutine] 코루틴이란 무엇인가? (0) | 2024.07.08 |