프로젝트 구조
•
app(플젝 이름 등)
프로젝트의 코드가 들어갈 모듈 설정
•
main.py
애플리케이션을 실행할 수 있는 Entrypoint
•
main.py 또는 app.py
FastAPI의 애플리케이션과 Router 설정
•
model.py
ML model에 대한 클래스와 함수 정의
FastAPI는 비동기 방식의 web server framework이다.
단순히 FastAPI 만으로는 서버를 띄울 수 없다는 뜻인데 이 때 필요한 것이 uvicorn이다.
uvicorn
python web server framework(Fastapi가 대표적)와 application 사이의 interface를 제공한다.
간단한 실행
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "world"}
Python
복사
해당 yong.py를 만든다
그리고 터미널에서 uvicorn을 실행하거나 yong파일에 해당 코드를 추가한다.
•
터미널
uvicorn yong:app --reload
Plain Text
복사
•
yong.py
from fastapi import FastAPI
import uvicorn
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "world"}
if __name__=='__main__':
uvicorn.run(app, host='0.0.0.0', port=8000)
Python
복사
python3 yong.py
Plain Text
복사
그리고 localhost:8000에 접근하면 결과를 볼 수 있다.
localhost:8000/docs 로 접근하면 Swagger를 볼 수 있다.
Swagger
•
REST API 설계 및 문서화할 때 사용
•
기능
◦
API 디자인
◦
API 빌드
◦
API 문서화
◦
API 테스팅