FastAPI는 현대적이고, 빠르며(고성능), 파이썬 표준 타입 힌트에 기초한 Python의 API를 빌드하기 위한 웹 프레임워크입니다.
Python 비동기 웹 프레임워크를 위한 표준 인터페이스. ASGI는 웹 소켓, 비동기 요청, 실시간 통신과 같은 요구사항을 충족시키기 위해 만들어진 인터페이스입니다. ASGI Server(ex:Uvicorn)에서 ASGI App(ex: FastAPI 기반으로 작성된 App)을 실행시킵니다. 아래는 ASGI Server가 ASGI App을 실행시키는 가장 로우 레벨단의 코드입니다.
async def app(scope, receive, send):
...
scope: {
"type": "http",
"http_version": "1.1",
...
}
그리고 receive, send 함수도 정의하여 app 함수를 실행합니다.
** receive 함수는 클라이언트가 보낸 body를 읽기 위한 함수입니다. 클라이언트가 보낸 body는 receive()를 통해 조각조각 들어오게 됩니다.
await send({
"type": "http.response.body",
"body": { "message": "Bye, JW" }
})