이번엔 요즘에 유행하는 python 3.6 이상 버전에서 사용가능한 백엔드 프레임워크인 fast api를 사용해보도록 하겠습니다.
fast api는 Uvicorn ASGI Server 를 사용한다는 특징이 있다.
Uvicorn
lightweight(매우 가벼운) 비동기 웹 서버
fastapi framework만으로는 웹 개발을 할 수 없고, ASGI와 호환되는 웹 서버가 필요하다.
ASGI
Asynchronous Server Gateway Interface의 약자
비동기 web server를 의미함 - async / await 구문을 사용
자 이제 우리는, uvicorn 이라는 HTTP Request를 처리해줄 경량 비동기 웹서버를 설치하고 그 위에 fast api를 돌려보겠다. 얼마나 구현이 간단한지 한번 체험해보자. 미리 슥 봤을때, 어쨌든 ORM을 사용하는 방식 java와는 다르기 때문에 익혀야 한다는 허들이 있긴하다. 익숙하지 않기때문에 트랜잭션 처리, 대용량 처리, 예외처리등을 제대로 하려면 학습 시간이 소요될 것이다.
fastapi 및 uvicorn 설치
$ pip install fastapi 'uvicorn[standard]'
main.py 파일 작성
from fastapi import FastAPI
app = FastAPI() # 인스턴스 생성
@app.get("/") # get method로 '/'에 해당하는 생성
def root():
return {'Hello':'World!'}
서버 실행
$ uvicorn main:app --reload #동작하지 않음
# windows os에서 스크립트 파일을 실행해야해서 python3 -m 을 넣어줘야한다.
$ python3 -m uvicorn main:app --reload # reload는 수정시 자동 새로고침
실행하면 아래와 같은 결과를 확인할 수 있다.
이제 8000번 로컬호스트로 접속해보자
잘 동작한다! 이제 api 로직을 구현해보고 테스트해볼 수 있겠다.
Swagger (API document) fast api 의 장점은 별도의 설정 없이 api 들을 문서화 해서 웹으로 볼 수 있다. http://127.0.0.1:8000/docs 로 접속하면 아래와 같은 화면을 볼 수 있다. 참 쉽죠~? 다음 포스팅에서는 fast api를 좀더 깊이있게 살펴보겠습니다.