fix(tradein): Caddy strip только /trade-in для API (не /trade-in/api)

handle_path /trade-in/api/* стрипал /trade-in/api целиком — FastAPI
получал /v1/trade-in/estimate и возвращал 404. FastAPI router на
/api/v1/trade-in/*, нужен strip только префикса basePath /trade-in.
This commit is contained in:
lekss361 2026-05-21 01:17:24 +03:00
parent a17a73af71
commit 2ce29973f9

View file

@ -28,14 +28,16 @@ gendsgn.ru {
# Trade-In MVP subproject (tradein-mvp/) — gendesign-tradein docker stack, # Trade-In MVP subproject (tradein-mvp/) — gendesign-tradein docker stack,
# подключен через gendesign_shared network. Routes ДО универсального handle # подключен через gendesign_shared network. Routes ДО универсального handle
# потому что Caddy матчит handle-блоки сверху вниз. # потому что Caddy матчит handle-блоки сверху вниз.
handle_path /trade-in/api/* { handle /trade-in/api/* {
# handle_path вырезает префикс /trade-in перед прокси → # `handle_path /trade-in/api/*` стрипал бы целиком /trade-in/api;
# FastAPI получает /api/v1/... # FastAPI router замаунтен на /api/v1/trade-in/* — нужен strip только
# префикса basePath /trade-in (Next.js basePath leak).
uri strip_prefix /trade-in
reverse_proxy tradein-backend:8000 reverse_proxy tradein-backend:8000
} }
# Matcher `path /trade-in /trade-in/*` ловит И /trade-in (без слеша), # Matcher `path /trade-in /trade-in/*` ловит И /trade-in (без слеша),
# И /trade-in/ + /trade-in/анisching. Без обоих случаев `handle /trade-in/*` # И /trade-in/ + /trade-in/anything. Без обоих случаев `handle /trade-in/*`
# пропускал /trade-in без слеша → попадал в общий frontend → пустой ответ. # пропускал /trade-in без слеша → попадал в общий frontend → пустой ответ.
@tradein path /trade-in /trade-in/* @tradein path /trade-in /trade-in/*
handle @tradein { handle @tradein {