반응형

Python/Backend 16

FastAPI에서 pdf 파일 뷰어를 띄우는 방법

안녕하세요.이번 시간에는 FastAPI에서 백엔드 서버를 구현할 때,서버 내 저장된 pdf 파일의 뷰어를 프론트엔드에서 띄워줄 수 있도록 하는 방법에 대하여간략하게 코드를 정리해보도록 하겠습니다.  FastAPI 코드 설정FastAPI에서 설정해야 할 작업은 간단합니다.다음과 같이 pdf 파일이 저장된 디렉토리에 대하여 mount를 진행해주시면 됩니다.from fastapi import FastAPIfrom fastapi.staticfiles import StaticFilesapp = FastAPI()app.mount( "/uploads", StaticFiles(directory="uploads"), name="uploads") 위의 예시에서는 uploads라는 디렉토리 내에 보여주고 싶..

Python/Backend 2025.03.18

FastAPI 미들웨어(middleware) 선언 코드 예제

안녕하세요.이번 시간에는 FastAPI를 사용하면서 자주 활용되는 미들웨어에 대해 쉽게 설명해보고,예제 코드와 함께 선언 방법을 간단히 정리해 보겠습니다.  미들웨어란?middleware는 API 서버에 들어오는 모든 요청과 나가는 응답 사이에서공통 작업을 처리할 수 있도록 도와주는 작은 기능 모듈입니다.즉, 요청이 실제로 처리되기 전에 전처리를 하거나 또는클라이언트에게 응답을 보내기 전에 후처리를하는 역할을 합니다. 대표적인 사용 예시는 다음과 같습니다.요청이 들어올 때 / API 로직 처리 이후 로그를 남기는 경우API 함수의 소요 시간을 기록하는 경우유저별 Rate Limit를 설정하려는 경우  데코레이터 방식의 미들웨어가장 간단한 방법으로, 데코레이터를 사용해서 미들웨어 함수를 작성할 수 있습니다..

Python/Backend 2025.03.12

FastAPI에서 Form 데이터에 대한 무결성 검증 방법

안녕하세요.이번 시간에서는 fastapi에서 Form으로 input을 받는 경우,pydantic을 통한 데이터 무결성을 검증하는 방법을 살펴보도록 하겠습니다. request body로 json input을 받는 경우에는 다음과 같이 쉽게 무결성 구현이 가능합니다.from fastapi import FastAPIfrom pydantic import BaseModel, Field, EmailStrapp = FastAPI()class User(BaseModel): username: str = Field(..., min_length=3, max_length=50) password: str = Field(..., min_length=8) email: EmailStr is_active: boo..

Python/Backend 2025.03.07

FastAPI 동기/비동기 설정 시 주의 사항

안녕하세요.이번 글에서는 FastAPI로 코드 작성 시sync/async 설정과 관련하여 유의해야할 사항을 정리해보겠습니다. 결론부터 말씀드리면"비동기 함수들로 올바르게 구성된 엔드포인트 함수는 async def로 작성하는 것이 좋지만,동기 함수로 실행해야 하는 경우라면 단순 def로 작성해야 한다." 입니다.  예시 코드다음과 같은 엔드포인트를 구성하는 함수가 있다고 가정하겠습니다.# 올바른 선언 예시: async def 내에 비동기 함수@app.get('/wait')async def example(): await asyncio.sleep(5) # 비동기 함수 return 0 이 경우는 비동기 함수로 구성된 올바른 async def 엔드포인트 함수 예시로5초 대기 후 응답을 반환하는 로직이 ..

Python/Backend 2025.02.17

FastAPI에서 docs 및 redoc에 상세 response model 부여 방법 - 오류 명세 작성 예시

안녕하세요.이번 시간에는 FastAPI의 문서(docs 및 redoc)에오류 명세 등을 상세히 적기 위하여 response model을 부여하는 방법을간략하게 정리해보도록 하겠습니다. 다음과 같은 간단한 FastAPI 서버가 있다고 가정해보도록 하겠습니다.from fastapi import FastAPIapp = FastAPI()@app.get("/")def my_func(): pass  오류 명세 json 양식여기서 response model의 정의는 json으로 진행되는데요.다음과 같은 포맷으로 오류에 대한 명세를 작성해주시면 됩니다.에러번호(integer) : { "description": "에러의 제목", "content": { "applicati..

Python/Backend 2025.01.20

FastAPI 서버를 HTTPS로 실행하는 방법

안녕하세요.FastAPI로 서버를 실행할 때, http가 아닌 보안이 추가된 https 프로토콜로서버를 실행할 수 있는 방법을 간략하게 정리해보도록 하겠습니다.  1. SSL 인증서 발급먼저, https로 서버를 실행하기 위해서는 ssl 인증서가 필요합니다.ssl 인증서는 openssl, mkcert, certbot, AWS Certificate Manager 등다양한 방법으로 발급받을 수 있는데요.이 중 어떤 방법으로 발급받던 HTTPS 프로토콜 적용은 가능합니다. 다만, 보안 및 원활한 실행을 위하여 self-signed 인증서보다는도메인 주소와 연결된 ssl 인증서를 발급받기를 권장드립니다. 여기서는 mkcert를 통해서 인증서를 발급받는 명령어의 예시를 다뤄보도록 하겠습니다.이렇게 발급 받은 인증..

Python/Backend 2024.12.01

FastAPI docs 작성 방법 정리

Python의 fastapi를 통하여 API 문서를 자동으로 쉽게 작성되도록 만들 수 있습니다.이 기능을 잘 활용하면 API를 구현할 때 이점이 굉장히 많은데요.이번 글에서는 fastapi의 docs 작성 방법들에 대하여 간략하게 요약해보도록 하겠습니다.  텍스트 설명 입력 방법API 사용 방법에 대하여 텍스트 설명을 추가하고 싶은 경우가 많습니다.여기서는 3가지 방법을 소개합니다.summary: 메소드 사용 방법 옆의 설명(빨간색 표시 부분)description: 메소드 상세 사용 방법(주황색 표시 부분)response_description: response 메시지에 관한 설명(노란색 표시 부분) 위 3가지 설명란이 제공된 docs의 예시는 다음과 같습니다. 코드에서는 위 3가지를 다음과 같이 적용할 ..

Python/Backend 2024.07.30

FastAPI CORS 설정 방법 코드 예제

파이썬의 fastapi 모듈로 백엔드 서버를 구현할 때,CORS 정책 설정을 진행하는 방법에 대한 코드 예제를간략하게 정리해보도록 하겠습니다.  모든 경우 허용 예시FastAPI에서 CORS 정책 설정은 CORSMiddleware를 import하여 다음과 같은 코드 스니펫을 통하여 진행할 수 있습니다.from fastapi import FastAPIfrom fastapi.middleware.cors import CORSMiddlewareapp = FastAPI()# CORS 설정 방법app.add_middleware( CORSMiddleware, allow_origins=["*"], # 허용할 도메인 목록 (모든 도메인 허용: ["*"]) allow_credentials=True, # 쿠..

Python/Backend 2024.06.30

FastAPI 비동기 세션 처리 AsyncSession 활용 예제(sqlalchemy)

지난 번의 글에서는 FastAPI로 sqlalchemy 활용 CRUD 예제 코드를 다룬 적이 있습니다. FastAPI에서 sqlalchemy 활용 SQL DB CRUD 구현 예제안녕하세요. 아래 링크의 지난 글에서는 NoSQL인 MongoDB를 기준으로fastapi의 CRUD 메소드 구현 방법을 알아보았습니다. FastAPI에서 MongoDB 데이터 연동 CRUD 예제안녕하세요. 아래 링크의 지난 글에서는jimmy-ai.tistory.com 이번 글에서는 해당 포스트의 코드를 비동기로 세션을 처리하는AsyncSession를 활용한 코드로 변경해보도록 하겠습니다.  모듈 설치AsyncSession 처리를 위하여 몇 가지 모듈 설치가 더 필요합니다.필요한 모듈들을 설치하는 예제 명령어는 다음과 같습니다. p..

Python/Backend 2024.06.01

FastAPI Query vs Body 예제 및 특징 비교

fastapi에서 유저에게 요청 파라미터를 받는 방식으로 Query와 Body를 많이 사용하는데요.이번 글에서는 이 두 가지 방식의 구현 방법과 차이에 대해서 간략하게 정리해보도록 하겠습니다.  Query parameters 사용 예제fastapi에서 Query를 이용하여 파라미터 요청을 받는 예시 코드는 다음과 같습니다.from fastapi import FastAPI, Queryapp = FastAPI()@app.get("/items")async def read_items(item_id: int = Query(...), q: str = Query(None)): return {"item_id": item_id, "q": q} 해당 예시에서는 item_id는 필수 파라미터, q는 선택 파라미터가 됩..

Python/Backend 2024.05.27
반응형