본문 바로가기

Fast api

[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를 사용하십시오. 참고: 경로 작동 함수에서 필요한 만.. 더보기
[Python] FastAPI 사용하기 - DB Connection - Fast API 공식 문서를 참고하여 DB Connection을 진행했습니다 공식문서: https://fastapi.tiangolo.com/ko/tutorial/sql-databases/?h=db#read-data SQL (Relational) Databases - FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for production fastapi.tiangolo.com - Fast API의 기본적인 DB 활용방법은 ORM이라고 합니다. SQLAlchemy 설치 $ pip install sqlalchemy database.py from sqlalchemy import create_engine from .. 더보기
[Python] FastAPI 사용하기 - 가상환경 , requirements.txt 설정 - 파이썬에는 기본적으로 가상환경을 제공합니다. 혼자서 한 개의 프로젝트를 진행한다면 사용하지 않아도 되겠지만, 협업 또는 현재 진행하는 프로젝트가 여러 개일 경우 로컬에 설정되어 있는 파이썬 버전 및 부가적으로 필요한 DI 항목들을 쉽고 빠르게 관리하기 위해서는 파이썬의 가상환경을 활용하는 것이 도움이 되기 때문에 프로젝트 진행에 앞서 가상환경을 설정하였습니다. 가상환경 설치 및 생성 $ python3 -m pip install virtualenv $ virtualenv venv --python=python3.11 - 버전은 생략해도 됩니다."--python=python3.11" - 실행 후 해당 작업 디렉터리에 venv라는 가상환경 폴더가 생성됩니다. - 해당 폴더에는 가상환경에 필요한 파일들이 존재.. 더보기
[Python] FastAPI 사용하기 - 설치 방법 및 기본 예제 Fast API란? - 공식문서 : https://fastapi.tiangolo.com/ko/ FastAPI FastAPI FastAPI 프레임워크, 고성능, 간편한 학습, 빠른 코드 작성, 준비된 프로덕션 문서: https://fastapi.tiangolo.com 소스 코드: https://github.com/tiangolo/fastapi FastAPI는 현대적이고, 빠르며(고성능), 파이썬 fastapi.tiangolo.com - 공식문서에 따르면 FastAPI는 현대적이고 빠른 파이썬 기반의 웹 프레임워크 라고 합니다. - 빠른 것으로는 최근 많은 서비스에 사용되는 NodeJS, Go와 대등할 정도로 매우 높은 성능을 자랑한다고 합니다. 또한 Swagger를 기본적으로 제공하고있어 문서를 자동화할 .. 더보기