728x90
[FastAPI] FastAPI 알아보기
FastAPI?
파이썬 3.6부터 제공되는 비교적 최근에 등장한 웹 프레임워크
기존에 잘 알려져있는 파이썬 웹 프레임워크로는 비교적 가벼운 웹 개발이라면 Flask를 사용했고,
조금 더 볼륨이 있는 프로젝트라면 Django를 사용했다.
이 가운데 비교적 조작법은 단순하면서 성능적으로 우세함을 보장한다는 FastAPI가 등장했다.
FastAPI는 현대적이고 빠르며, 파이썬 표준 타입에(Type Annotation) 기초한 웹 프레임워크다.
FastAPI의 특징은 다음과 같다.
- 자동 스웨거 (Swagger) 지원 ==> API 문서를 자동으로 생성
- 풍부한 자유도
- 내부에서 Starlette과 Pydantic을 사용
- 큰 커뮤니티, 아직은 작은 생태계
FastAPI 사용하기
FastAPI를 사용하기위해 fastapi와 uvicorn을 설치해준다.
(ubuntu 22.04 / miniconda 환경에서 프로젝트 세팅)
conda create -n web python=3.10
pip install fastapi uvicorn
🤔 Uvicorn?
FastAPI는 uvicorn ASGI Server와 함께 사용한다.
ASGI는 Asynchronous Server Gateway Interface의 약자로 비동기 web server를 의미한다.
비동기 방식은 DB나 API 연동 과정에서 발생하는 대기 시간을 낭비하지 않고,
CPU가 다른 작업을 할 수 있도록 하는 방식이다.
FastAPI 설치가 완료됐으면 sample 코드를 작성해준다.
main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def index():
return {"index":"Hello FastAPI"}
@app.get("/math/sum")
def math_sum(num1: int, num2: int):
return {"result":num1+num2}
Sample 코드를 실행할 때 필요한게 uvicorn이다. 다음 명령어를 실행해준다.
uvicorn main:app --reload
실행 후 localhost:8000 으로 접속하면 index를 확인할 수 있고
localhost:8000/docs로 가서 try it out을 클릭하면 api 호출이 가능하다.
원하는 파라미터값을 넣고 호출을 하면
아래와 같이 response를 확인 할 수 있다.
반응형
'👩💻 Develope > Web' 카테고리의 다른 글
[etc] HTTP 상태코드 (0) | 2024.04.15 |
---|---|
[etc] 옵시디언(obsidian) 무료로 퍼블리시 하기 (0) | 2024.03.07 |
[API][Apps Script] 공공 데이터 포탈에서 공휴일 API 가져오기 (0) | 2023.10.25 |
[Django/React] 장고와 리액트 연동 (3) (0) | 2023.10.13 |
[Django/React] 장고와 리액트 연동 (2) (0) | 2023.10.12 |