본문 바로가기

Framework/FastAPI

[Fast API] FastAPI CLI v0.11.0 업데이트(사용법) Fast API CLI란?Fast API에서 24.05.03 Release에서 FastAPI CLI라는 신규 기능을 공개했다어떤 점이 변화했고 추가되었는지 알아보자 Release_Note: https://fastapi.tiangolo.com/release-notes/ Release Notes - FastAPIFastAPI framework, high performance, easy to learn, fast to code, ready for productionfastapi.tiangolo.com Docs: https://fastapi.tiangolo.com/fastapi-cli/ FastAPI CLI - FastAPIFastAPI framework, high performance, easy to lear.. 더보기
[Fast API] Endpoint Validation (422 Error: Unprocessable Entity) Fast API 애플리케이션 개발 시에 422 Error가 발생할 경우가 있다. 보통 API 요청 시 pydantic으로 정의되어 있는 Request Model에 어긋나기 때문에 발생하는데 그 외에도 endpoint, router 선언 기준/선언 순서에 따라 endpoint가 겹치는 현상이 발생하여 오류 추적이 어려울 때가 존재하여 그 내용을 정리하였다. Endpoint 정의 및 순서에 따른 이슈 : 서로 다른 두 개의 API를 선언하고 테스트 결과를 확인해 보았다. from fastapi import Body, FastAPI, Path from model import UserInfo, UserStatus app = FastAPI() # 사용자 정보 수정 API @app.put("/user/{id}") .. 더보기
[Fast API] 동기, 비동기 함수 blocking / non-blocking Fast API에서는 비동기적 프로그래밍이 가능하다. 이로 인해 동시성을 보장하고 NodeJS 및 Go와 대등할 정도로 매우 높은 성능을 보장한다고 한다. 그렇다면 Fast API의 모든 함수는 비동기 즉 async로 선언하면 되는가? 비동기는 빠르기 때문에? : 이에 대한 해답을 찾기 위해 테스트를 진행했다. 또한, 특정 함수가 blocking 되어 서비스가 정상동작하지 않는 이슈를 경험하여 내용을 정리하였다. 공식문서에서는 동시성과 async / await을 다음과 같이 설명하고 있다. 만약 당신의 응용프로그램이 (어째서인지) 다른 무엇과 의사소통하고 그것이 응답하기를 기다릴 필요가 없다면 async def를 사용하십시오. 모르겠다면, 그냥 def를 사용하십시오. 참고: 경로 작동 함수에서 필요한 만.. 더보기
[FastAPI] ASGI uvicorn Server 비동기 동작원리 Fast API는 기본적으로 ASGI의 한 종류인 uvicorn을 사용하고 있음 이로 인해 비동기적 프로그래밍이 가능한 것인데 어떻게 동작하는지 알아보자 ASGI(Asynchronous Server Gateway Interface) : Python 웹 애플리케이션을 비동기식으로 처리하기 위한 웹 서버와 애플리케이션 간의 표준 인터페이스 기존 WSGI의 한계를 극복하기 위해 개발된 인터페이스 WSGI(Web Server Gateway Interface) : Python 프로그램과 웹 서버 간의 표준 인터페이스 ASGI와 다르게 동기식으로 동작하여 동시성 처리에 어려움이 있다. Uvicorn : Python 웹 애플리케이션을 ASGI 서버로 실행할 수 있는 명령 줄 도구 비동기적 프로그래밍 : 프로그램의 흐.. 더보기