This commit is contained in:
JiriUhlir
2026-06-29 11:13:10 +02:00
parent 04fbf692a3
commit c907ed5ae9
3 changed files with 48 additions and 34 deletions
@@ -49,9 +49,20 @@ HTTP API hlavičky:
## Reverse proxy a Swagger
Aplikace běží za AppFactory proxy na `/apps/<app-id>` (Caddy `handle_path` prefix před
předáním do containeru odstraní). Proto:
předáním do containeru odstraní, takže container vidí routy bez prefixu a z requestu
veřejnou cestu nelze odvodit). Stejný přístup jako sousední služba `idoklad`:
- OpenAPI `servers` obsahuje `ROOT_PATH` (`/apps/<app-id>`), takže Swagger `Try it out`
volá `…/apps/<app-id>/api/<resource>`.
- Swagger UI načítá OpenAPI dokument z `ROOT_PATH + /openapi.json`, ne z kořene domény.
- Lokálně bez `ROOT_PATH` se vše chová relativně ke kořeni (`/openapi.json`, server `/`).
- OpenAPI dokument se servíruje **pod stejným `/docs` prefixem** jako UI na
`GET /docs/openapi.json` (plus alias `GET /openapi.json` pro přímý přístup).
- Swagger UI načítá dokument přes **relativní** endpoint `openapi.json`, takže se
v prohlížeči vyhodnotí jako `{prefix}/docs/openapi.json` lokálně i za proxy, bez
hardcodování `/apps/<app-id>`.
- `servers[0].url` se nastaví z `ROOT_PATH` (fallback hlavička `X-Forwarded-Prefix`,
nakonec `/`), takže Swagger `Try it out` volá `…/apps/<app-id>/api/<resource>`.
| Kontrola | Lokálně (bez ROOT_PATH) | S `ROOT_PATH=/apps/sap-bo` |
|---|---|---|
| `GET /health` | 200 | 200 |
| `GET /docs` (Swagger UI) | 200 | 200 |
| `GET /docs/openapi.json` | 200 | 200 |
| `servers[0].url` v OpenAPI | `/` | `/apps/sap-bo` |