fix(health): HEAD на /health в обоих бэкендах — аптайм проверял то, что всегда отвечает 405 #2893
2 changed files with 10 additions and 2 deletions
|
|
@ -521,6 +521,11 @@ async def health() -> dict[str, str]:
|
||||||
# дублировать сборку payload) — RFC 9110 §9.3.2 разрешает опускать payload-
|
# дублировать сборку payload) — RFC 9110 §9.3.2 разрешает опускать payload-
|
||||||
# заголовки (Content-Length) для HEAD, требует совпадения только заголовков
|
# заголовки (Content-Length) для HEAD, требует совпадения только заголовков
|
||||||
# представления (Content-Type).
|
# представления (Content-Type).
|
||||||
@app.head("/health")
|
# include_in_schema=False: HEAD-проба — инфраструктура (uptime-monitor), а не часть
|
||||||
|
# контракта, по которому фронт генерирует типы. Без этого флага операция попадает в
|
||||||
|
# app.openapi(), и job `openapi-codegen-check` краснеет, требуя перегенерации
|
||||||
|
# frontend/src/types/api-types.ts — правки в сгенерированном файле ради маршрута,
|
||||||
|
# который фронт никогда не вызывает.
|
||||||
|
@app.head("/health", include_in_schema=False)
|
||||||
async def health_head() -> Response:
|
async def health_head() -> Response:
|
||||||
return Response(status_code=200, media_type="application/json")
|
return Response(status_code=200, media_type="application/json")
|
||||||
|
|
|
||||||
|
|
@ -222,7 +222,10 @@ def health() -> dict[str, str]:
|
||||||
# сознательно НЕ вычисляем под байт GET-ответа (дублировало бы сборку payload)
|
# сознательно НЕ вычисляем под байт GET-ответа (дублировало бы сборку payload)
|
||||||
# — RFC 9110 §9.3.2 разрешает опускать payload-заголовки (Content-Length) для
|
# — RFC 9110 §9.3.2 разрешает опускать payload-заголовки (Content-Length) для
|
||||||
# HEAD, требует совпадения только заголовков представления (Content-Type).
|
# HEAD, требует совпадения только заголовков представления (Content-Type).
|
||||||
@app.head("/health")
|
# include_in_schema=False — по той же причине, что и у Site Finder: HEAD-проба это
|
||||||
|
# инфраструктура, а не контракт API. Здесь codegen-джоба пока нет, флаг ставим
|
||||||
|
# симметрично, чтобы схема двух бэкендов не разъезжалась.
|
||||||
|
@app.head("/health", include_in_schema=False)
|
||||||
def health_head() -> Response:
|
def health_head() -> Response:
|
||||||
return Response(status_code=200, media_type="application/json")
|
return Response(status_code=200, media_type="application/json")
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue