🏎️ Fast API 설치 및 실행 정리 🏎️
API를 만들기 위한 파이썬 웹 프레임워크
Application Programming Interface
서비스의 요청과 응답에 대한 규칙을 의미
Representational State Transfer API
서버가 요청 간에 클라이언트 데이터를 저장하지 않는 무상태를 특징으로 한다.
서버에 대한 클라이언트 요청은 URL과 유사한 형태로 한다.
서버의 응답은 웹 페이지의 일반적인 그래픽 렌더링이 없는 일반 데이터(JSON 등)이다.
클라이언트가 서버 데이터에 엑세스하는 데 사용할 수 있는 HTTP Method 집합 정의
클라이언트와 서버는 HTTP를 사용해 데이터를 교환
Asynchronous Server Gateway Interface
Python의 비동기 웹 서버와 애플리케이션 사이의 표준 인터페이스
Python에서 웹 어플리케이션을 배포할 때 비동기 요청 처리를 위해 ASGI 서버를 사용한다.
파이썬 전용 ASGI 서버
uvloop(이벤트 loop) + http tools(http 프로토콜 처리)를 이용해 ASGI를 구현
Python 설치가 된 환경에서 진행해야 한다.
환경 설정을 쉽게 하기 위해 가상 환경에서 진행하겠다.
python3 -m venv <virtual_environment_name>
venv라는 파이썬 Module을 실행시켜 가상 환경을 만든다.
<virtual_environment_name>\Scripts\activate
Windows 기준으로 가상환경을 동작시킨다.
가상환경 안의 패키지 이름에 차이가 있을 수 있으니 일치 여부 확인하고 실행바란다.
(<virtual_environment_name>) $
정상적으로 동작되면 터미널에서 가상 환경 이름을 확인할 수 있다.
$ pip install fastapi # Fast API 설치
$ pip install "uvicorn[standard]" # Uvicorn 설치
$ pip install sqlalchemy aiomysql pymysql greenlet # 데이터 베이스 연동을 위한 패키지
가상 환경에 필요한 패키지를 설치한다.
$ python3 -m uvicorn api.main:app --host 0.0.0.0 --port <port> --reload
정상적으로 실행된다면 localhost에서 원하는 HTTP Method 요청을 실행할 수 있다.
// Swagger UI Docs 접속 주소
http://localhost:<port>/docs
또, Swagger UI Docs에 접속할 수 있다!
Windows에서 python3 명령어가 인식하지 못하는 문제가 있었는데, 이는 환경 변수 설정 차이에 의한 문제라 python3 명령어가 인식되지 않는다면 python으로 진행하면 된다.
또, host를 0.0.0.0으로 설정했다고 그쪽으로 접속하면 안된다.
0.0.0.0은 모든 주소를 의미하며, Swagger UI에 접속하기 위해서는 localhost로 하면 된다.
참고-Fast API
참고-Fast API 특징
참고-REST API
참고-ASGI
참고-Uvicorn
참고-ASGI/Uvicorn
참고-Fast API 실행