from fastapi import FastAPI
app = FastAPI(docs_url='/api/docs', openapi_url='/api/openapi.json')
목적
프로젝트를 진행하면서, FastAPI를 EKS 위에서 배포하여 사용하는 서비스 환경을 설계하였다.
API Server를 ALB(L7)와 Route53을 통해 /api prefix로 노출시키고 정상적으로 웹서버에서 통신이 가능하게 세팅이 된 후, FastAPI의 편리한 Swagger 기능을 통해 간단한 Web UI를 제공받고자 하였다.
Swagger의 기본 URL은 /docs 및 /redoc 인데, 사용하는 도메인 주소에서 API 서버는 /api 를 차지한다.
그렇다 보니, /docs 를 입력하면 당연히 웹서버의 페이지로 라우팅되었다.
간단하게 기존 Swagger 기본 경로를 /api/docs로 넘겨 해결하는 방법을 공유하고자 한다.
# Swagger 기본 URL 변경
from fastapi import FastAPI
app = FastAPI(docs_url='/api/docs', redoc_url='/api/redoc')
생각보다 너무나도 간단했다.
위와 같이 기본 docs_url을 원하는 경로로 지정하면 그만이였다.
redocs 또한 마찬가지로 구성이 가능하다.
본인은 Swagger만 사용하면 되서 redoc은 생략했다.
# 추가 구성 - 저것만 하면 안됨
실제로 쿠버네티스 환경에서 배포하고, 도메인 네임으로 접속을 해보니, 이제 Swagger로 넘어가는 듯 했으나, 아래와 같은 렌더링을 할 수 없다는 문구를 제공받았다.
이를 해결하기 위해 이것저것 뒤져봤지만, FastAPI만 사용하는데 야믈이니 Java니 그런 코드를 수정하라는 내용들이 많아 정신을 차리지 못했고..
이 또한 매우 간단하게 해결했다. 돌고돌아 공식문서
위 공식문서를 참고해서 해당 부분 코드는 아래와 같이 적용하고, 현재 잘 동작한다!
from fastapi import FastAPI
app = FastAPI(docs_url='/api/docs', openapi_url='/api/openapi.json')
'Dev > Web' 카테고리의 다른 글
CSS Selector & XPath 개념 및 사용법 (7) | 2024.04.12 |
---|---|
네이버 쇼핑 검색 과정 자동화(크롤링) with Selenuim - 2 (3) | 2024.04.10 |
네이버 쇼핑 검색 과정 자동화(크롤링) with Selenuim - 1 (47) | 2024.03.03 |
FastAPI & Nginx 특정 엔드포인트(Health Check) 로그 제거 - ALB Health Check 로그 제외시키기 (2) | 2023.10.29 |
FastAPI 기반 Server Sent Event(SSE) 구현 과정 및 시행착오 - UTF-8 Decoding 및 ANSI Escape Sequence 처리 (2) | 2023.10.28 |