Какие стандартные API могут быть полезны всем сервисам?
1. /health, /ready, /startup - для оркестраторов и балансеров. О них я рассказывал ранее.
2. /metrics - стандартный эндпойнт для скрэпинга метрик prometheus
3. /build-info - возвращает название сервиса, версию, номер и дату-время билда
{
"name": "my-awesome-service",
"version": "1.2.3",
"commit": "abc123",
"builtAt": "2026-02-01T12:00:00Z"
}
Название сервиса может помочь в отладке балансировки, чтобы быть уверенным, что нам отвечает нужный сервис.
Версию и название, можно отдавать не только здесь, но и добавлять в трейсы и в заголовки ответов обычных API.
4. /whoami - возвращает информацию о текущем инстансе
Вся эта информация обычно поступает из переменных окружений, API просто выводит их для удобства.
{
"env": "prod", // название окружения
"hostname": "my-awesome-service-48805-2183412", // название пода/виртуалки
"node": "some-node-12", // воркер нода k8s
"zone": "west-1b" // зона доступности
}
5. /features - возвращает не секретные данные о текущих фича-флагах, рейт-лимитах и прочей информации которая не несет рисков компрометации
{
"Features": {
"SomethingEnabled": true
},
"RateLimits": {
"HeavyApis": {
"Permit": 1,
"Queue": 0
}
}
}
6. /config
Для локальной разработки можно сделать API который отдает весь конфиг, с информацией о том, откуда пришли эти данные. Но не рекомендую такое включать на стендах, так как это скомпрометирует секреты.
Обычно такое API не нужно, так как конфиги локальные достаточно простые. Но всякие проекты бывают.
А какие API можно еще добавить в этот список?
1. /health, /ready, /startup - для оркестраторов и балансеров. О них я рассказывал ранее.
2. /metrics - стандартный эндпойнт для скрэпинга метрик prometheus
3. /build-info - возвращает название сервиса, версию, номер и дату-время билда
{
"name": "my-awesome-service",
"version": "1.2.3",
"commit": "abc123",
"builtAt": "2026-02-01T12:00:00Z"
}
Название сервиса может помочь в отладке балансировки, чтобы быть уверенным, что нам отвечает нужный сервис.
Версию и название, можно отдавать не только здесь, но и добавлять в трейсы и в заголовки ответов обычных API.
4. /whoami - возвращает информацию о текущем инстансе
Вся эта информация обычно поступает из переменных окружений, API просто выводит их для удобства.
{
"env": "prod", // название окружения
"hostname": "my-awesome-service-48805-2183412", // название пода/виртуалки
"node": "some-node-12", // воркер нода k8s
"zone": "west-1b" // зона доступности
}
5. /features - возвращает не секретные данные о текущих фича-флагах, рейт-лимитах и прочей информации которая не несет рисков компрометации
{
"Features": {
"SomethingEnabled": true
},
"RateLimits": {
"HeavyApis": {
"Permit": 1,
"Queue": 0
}
}
}
6. /config
Для локальной разработки можно сделать API который отдает весь конфиг, с информацией о том, откуда пришли эти данные. Но не рекомендую такое включать на стендах, так как это скомпрометирует секреты.
Обычно такое API не нужно, так как конфиги локальные достаточно простые. Но всякие проекты бывают.
А какие API можно еще добавить в этот список?