https://asikodevapi.candourit.io.
/v1/internal/* — service-to-service only
user-service exposes three controllers under internal/*, marked @ApiExcludeController() so
they never appear in Swagger either. api-gateway’s proxy has no route prefix for /v1/internal
— there is no way to reach these from outside the private network. They exist purely so
admin-service can call user-service directly (over the internal Docker network) when handling
requests made to the public /v1/admin/* endpoints in the Admin reference group.
If you need one of these capabilities as an API consumer, use the corresponding
/v1/admin/*
endpoint in the Admin reference group — it requires ADMIN/SUPER_ADMIN and forwards to the
matching internal route for you.
Per-service health checks
Every backend service exposes its ownGET /v1/health for container orchestration (Docker
Swarm) to poll directly — api-gateway does not proxy any of these, since health checks are
meant to hit each container’s own port, not go through the gateway. The only health check
reachable as an API consumer is the gateway’s own:
Gateway-only dev utility
GET /v1/services/routes on api-gateway returns the internal path-prefix → service routing table
used by the proxy (the same table summarized in the Introduction). It responds
with 501-style {"message": "Not available in production"} whenever NODE_ENV=production, so
it’s a local-development convenience, not part of the supported API.