FastAPI отдаёт /openapi.json на корневом пути (маршруты backend объявлены с явным префиксом /api/... в декораторах, а не через APIRouter(prefix=)), поэтому запрос попадал в catch-all location / (раздача index.html фронта) раньше, чем мог бы дойти до backend — снаружи схема API была недоступна, что мешало отладке. Добавлен точный location = /openapi.json, проксирующий на backend:8000 (матчится раньше catch-all за счёт приоритета exact-match в nginx).
11 KiB
11 KiB