전공영역 공부 기록

FastAPI를 이용한 docker-compose API 개발 2편

악분 2021. 8. 9. 14:18
반응형

프로젝트 글 모음

1편: https://malwareanalysis.tistory.com/137

2편: https://malwareanalysis.tistory.com/138

3편: https://malwareanalysis.tistory.com/139

 

2편에서 다루는 내용

FastAPI개발을 위한 환경설정과 helloworld API를 만드는 과정을 다룹니다.

 

영상으로도 만나볼 수 있습니다.

https://youtu.be/JT6d7mApNEE

 

 


1. 준비

Fastapi을 실행하기 위해 파이썬 3.6이상이 필요합니다. 개발 IDE는 vscode를 사용합니다. 파이썬 패키지관리는 virtualenv로 관리합니다.

 

  • 파이썬 3.6이상
  • 파이썬 가상환경(virtualenv)
  • vscode

 

 

2. 프로젝트 구조

[그림1]처럼  프로젝트 파일/폴더를 관리할 것입니다. Fastapi 작업내용과 도커배포를 위한 Dockerfile, 테스트를 위한 docker-compose.yaml파일로 구성됩니다.

 

그림1 프로젝트 구조

 

3. Fastapi 패키지 설치

fastapi로 개발하기 위해서는 fastapi, uvicorn패키지가 필요합니다. uvicorn은 fastapi를 실행/관리하는 ASGI입니다.

공식문서: https://fastapi.tiangolo.com/#requirements

 

pip install fastapi
pip install uvicorn[standard]

 

 

 

4. hello world api생성

 

4.1 api 생성

hello world 예제도 공식문서에 잘 설명이 되어 있습니다. 공식문서 예제를 그대로 복사해서 main.py에 붙여넣기합니다.

공식문서: https://fastapi.tiangolo.com/#example

 

from typing import Optional

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: Optional[str] = None):
    return {"item_id": item_id, "q": q}

 

4.2 fastapi 실행

main.py가 있는 곳에서 uvicorn명령어를 실행하면 fastapi가 실행됩니다. --reload옵션은 fastapi 소스코드가 변경되면 자동으로 fastapi를 재실행하는 옵션입니다.

uvicorn main:app --reload

 

그림2 fastapi실행

 

4.3 api호출

127.0.0.1:8000주소로 api를 요청하면 json타입인 hello world를 볼 수 있습니다.

그림3 fastapi 요청 테스트

반응형