출처: https://fastapi.tiangolo.com/
아래의 내용은 공식 사이트의 내용을 제 경험과 생각을 추가하여 다시 정리한 것 입니다.
FastAPI란?
공식 사이트
문서: https://fastapi.tiangolo.com/
소스코드: https://github.com/tiangolo/fastapi
FastAPI는 Python 3.6 이상을 지원하는 빠른 웹 프레임워크.
API 개발에 중점(RESTful API를 구축에 적합).
'Starlette'의 비동기 프로그래밍 기능 이용.
'Pydantic': Python 코드에 최적화.
빠른 성능, 쉬운 사용, 그리고 뛰어난 오류 발견 기능을 제공.
주요 특징
빠름 - Starlette과 Pydantic으로 빠름
빠른 코드 작성
적은 버그 - 개발자에 의한 에러 감소
직관적
쉬움
짧음
견고함
표준 기반 - API에 대한 개방형 표준 기반
설치
FastAPI 패키지 설치
pip install "fastapi[all]”
# 또는
# pip3 install "fastapi[all]”
또는 패키지 각각 설치
pip install fastapi
pip install "uvicorn[standard]”
첫 번째 application
출처: https://fastapi.tiangolo.com/tutorial/first-steps/
Hello World
from fastapi import FastAPI
app = FastAPI() # FastAPI의 인스턴스 객체 app를 생성.
@app.get("/") # 경로 동작 데코레이터 (url 주소)
async def root(): # 경로 동작 함수
return {"message": "Hello World"} # json Type으로 return
FastAPI
임포트app
인스턴스 생성
(@app.get("/")
) '경로(url) 동작 데코레이터' 작성
(def root(): ...
) '경로 동작 함수' 작성 (데코레이터 바로 밑에)
서버 실행
uvicorn main:app --reload
main
: 실행 되어야 할 python file(main.py
) 입니다.app
: FastAPI()로 생성한 객체 명 (app = FastAPI()
) 입니다.-reload
: 코드가 변경 되었을 때 변경 내용을 자동으로 반영합니다. 개발 시에만 사용 해야 합니다.
원격서버에서 위의 명령어를 실행하고 외부에서 원격서버에 접근하면 접근이 되지 않습니다. 아래와 같이 접근 가능한 호스트와 포트를 지정 할 수 있습니다.
uvicorn main:app --reload --host 0.0.0.0 --port=8503
--host 0.0.0.0
: 외부의 모든 ip에서 접근 가능 하게 합니다.--port=8503
: 서비스의 포트를 변경합니다.
결과
http://127.0.0.1:8000
위의 url로 접속 하면 아래의 결과가 나옵니다.
{"message": "Hello World"}
원격 서버의 경우는 아래와 같은 형식으로 접속 합니다.
http://원격서버주소:지정한포트번호
원격 서버의 방화벽이 지정한 포트 번호를 허용 해야 합니다.
서버 종료
Ctrl + c
대화형 API 문서 자동 생성
대화형 API 문서를 자동으로 생성하고 제공합니다.
아래의 url로 접속 하시면 됩니다.
http://127.0.0.1:8000/docs
아래는 대화형 API 문서의 예시 입니다.
'웹 프레임워크 > FastAPI' 카테고리의 다른 글
FastAPI - 06 (경로 매개변수와 숫자 유효성 검사) (0) | 2023.12.18 |
---|---|
FastAPI - 05 (쿼리 매개변수와 문자열 유효성 검사) (0) | 2023.12.17 |
FastAPI - 04 (Request Body) (0) | 2023.12.17 |
FastAPI - 03 (쿼리(Query) 매개변수) (0) | 2023.12.15 |
FastAPI - 02 (경로(Path) 매개변수) (0) | 2023.12.15 |