fix: respect root_path in FastAPI docs

This commit is contained in:
2026-05-21 21:45:39 +09:00
parent 600963158e
commit c4f8718872
3 changed files with 26 additions and 0 deletions
+1
View File
@@ -51,6 +51,7 @@ class Settings(BaseSettings):
loki_port: int = Field(default=3100, validation_alias="LOKI_PORT")
loki_enabled: bool = Field(default=False, validation_alias="LOKI_ENABLED")
credential_encryption_key: str = Field(default="", validation_alias="CREDENTIAL_ENCRYPTION_KEY")
root_path: str = Field(default="", validation_alias="PORTFOLIOHUB_ROOT_PATH")
model_config = SettingsConfigDict(
env_prefix="PORTFOLIOHUB_",
+1
View File
@@ -63,6 +63,7 @@ def create_app(
version=settings.app_version,
docs_url="/docs",
redoc_url="/redoc",
root_path=settings.root_path,
lifespan=lifespan,
)
+24
View File
@@ -0,0 +1,24 @@
from fastapi.testclient import TestClient
from app.main import create_app
from app.core.config import Settings
def test_docs_uses_root_path_for_openapi_url() -> None:
app = create_app(settings_factory=lambda: Settings(root_path="/portfolio-hub"))
with TestClient(app) as client:
response = client.get("/docs")
assert response.status_code == 200
assert "url: '/portfolio-hub/openapi.json'" in response.text
def test_openapi_is_served_under_root_path() -> None:
app = create_app(settings_factory=lambda: Settings(root_path="/portfolio-hub"))
with TestClient(app) as client:
response = client.get("/portfolio-hub/openapi.json")
assert response.status_code == 200
assert response.json()["info"]["title"] == "PortfolioHub"