프레임워크: 어플리케이션 Flow(흐름)이 자체적으로 있어, 거기에 들어가서 사용함(예: 밀키트 제조)
라이브러리:개발자가 만든 클래스에서 호출하여 클래스들의 나열로 필요한 클래스를 불러서 사용하는 방식, 활용가능한 도구들의 집합(예: 마트 가서 장봐서 내 레시피대로 요리하기)
차이점: 제어의 흐름에 대한 주도성이 누구에게/어디에 있는가
'제어의 역전', 프레임워크가 코트를 주도하게 하여 개발자의 에러를 줄이는 목적
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
pip install fastapi
pip install "uvicorn[standard]"
unicorn서버로 fastapi를 실행해줌.
@app.get("/first/{id}")
# get은 rest 통신 방식 중 하나, /는 기본주소를 뜻함, 뒤에 다른 텍스트를 추가하면, 주소창에도 /first라고 추가해줘야함
async def root(id:int):
#매개변수 타입 지정 가능
#아래 코드를 실행
return {"message": "Hello World", "id": id}
#프레임워크가 객체를 알아서 json로 만들어줌, return에는 무조건 문자형이 와야함(?)
uvicorn main:app --reload
선 실행 후 확인
reload는 테스트할 때만 하고, 실제 배포할 때는 안씀.
?뒤에는 key=value(여러 개는 &로 이어줌)
postman 설정 방식
body 부분에는 json형식으로 입력
http://127.0.0.1:8000/docs
뒤에 docs를 치면 됨.
문서에는 request문 response문이 자동 정리됨.
http://127.0.0.1:8000/redoc
redoc는 다른 문법으로 정리되는 자동 문서
yarn add gh-pages까지 해준 다음