FastAPI 프로젝트

심준석·2024년 4월 30일
0

FastAPI

목록 보기
2/11

FastAPI 설치

Python 가상 환경 생성

파이썬은 가상 환경을 통해 프로젝트마다의 독립된 환경을 구축할 수 있다. 하나의 PC안에서 독립된 가상 환경을 여러 개 만들수 있어, 하나의 PC안에 서로 다른 버전의 파이썬과 라이브러리를 쉽게 설치해 사용할 수 있다.

가상 환경 생성

python3 venv -m myapi

가상 환경 활성화

source myapi/bin/activate

가상 환경에 정상적으로 진입했다면, 명령 프롬프트 왼쪽에 (myapi) 프롬프트가 보이는지 확인하자.

가상 환경에 FastAPI 설치하기

myapi 가상 환경에 진입한 상태에서 pip3 install fastapi 명령을 입력하면된다

pip3 install fastapi

파이보 프로젝트

웹 브라우저에서 "안녕하세요 파이보"를 출력해주는 첫 번째 프로그램을 만들어보겠다.

Hello API 만들기


다음과 같이 main.py 파일을 작성하자.

from fastapi import FastAPI

app = FastAPI()

@app.get("/hello")
def hello():
	return {"message":"안녕하세요 파이보"}

FastAPI 클래스로 생성한 app 객체가 바로 FastAPI의 핵심 객체이다. 모든 동작은 이 객체로부터 비롯된다. 함수명 위에 @app.get("/hello") 어노테이션은 /hello라는 URL요청이 발생하면 해당 함수를 실행하여 결과를 리턴하라는 의미이다. 따라서 /hello라는 URL이 요청되면 FastAPI는 {"message":"안녕하세요 파이보"}라는 딕셔너리를 리턴할 것이다.

이제 작성한 프로그램을 실행해야한다. FastAPI로 작성한 프로그램을 실행하기 위해서는 FastAPI 프로그램을 구동할 서버가 필요하다. 먼저 uvicorn을 설치하자.

유비콘(Uvicorn)은 비동기 호출을 지원하는 파이썬용 웹 서버이다.

pip3 install uvicorn[standard]

설치가 완료되었다면, 이제 생성한 Hello API를 실행해보자.

uvicorn main:app --reload

그러면 현재 PC에 8000번 포트로 FastAPI서버가 구동된다.

main:app에서 main은 main.py 파일을 의미하고 app는 main.py의 app객체를 의미한다. --reload 옵션은 프로그램이 변경되면 서버 재시작 없이 그 내용을 반영하라는 의미히다.

Hello API 테스트하기


FastAPI가 실행되면 FastAPI로 작성한 API는 /docs URL을 호출하여 테스트해볼 수 있다.

http://127.0.0.1:8000/docs

다음 화면이 나타난다. 이 화면이 바로 FastAPI의 테스트가 가능한 API 문서라고 한다.

main.py에서 작성한 /hello URL에 대한 API가 등록된 것을 볼 수 있다. 해당 API를 누르고 "Try it out" 버튼을 누른 후 "Execute" 버튼을 누르면 Hello API의 동작을 테스트할 수 있다.

hello 함수에서는 딕셔너리를 리턴했지만 FastAPI는 이를 자동으로 json 형태의 응답으로 리턴한다.

한줄평

개좋네.. 예전에 끄적였던 스마트팜 모니터링용으로 구현한 React 서버랑 연동해서 한번 써봐야겠다..

profile
Developer & Publisher 심준석 입니다.

0개의 댓글