API de microservicios de C4C7OPS
Referencia OpenAPI de la API de microservicios de C4C7OPS para integraciones tecnicas.
microservices-api
API de microservicios de C4C7OPS
La API de microservicios de C4C7OPS (versión 0.2.3) expone un conjunto de endpoints RESTful para gestionar el ciclo de vida de microservicios de forma programática. Está diseñada para equipos de ingeniería que integran C4C7OPS en flujos de CI/CD, plataformas de orquestación o herramientas internas de automatización.
El producto C4C7OPS pertenece a Codifly y proporciona control centralizado sobre servicios, entornos, despliegues, variables de entorno y parámetros de runtime.
Capacidades principales
- Servicios: consulta de microservicios agrupados por categoría.
- Entornos: listado de entornos disponibles para la cuenta.
- Despliegues: creación y seguimiento de despliegues por microservicio y entorno.
- Variables de entorno: lectura y escritura de variables de configuración por microservicio y entorno.
- Runtime settings: lectura y escritura de parámetros modificables en caliente sin necesidad de redeploy.
Autenticación
La autenticación depende de la configuración definida en el campo securitySchemes de la especificación OpenAPI. Generalmente se utiliza un token Bearer en la cabecera Authorization o credenciales OAuth2 según el entorno. Consulta la especificación completa para los mecanismos soportados y los requisitos por endpoint.
Base URL
Todas las rutas están prefijadas con /b1/microservices.
Códigos de error comunes
| Código | Significado |
|---|---|
400 | Parámetros de entrada inválidos o mal formateados. |
401 | Falta de autenticación o token inválido. |
403 | Permisos insuficientes para el recurso solicitado. |
404 | El recurso no existe (microservicio, entorno o despliegue no encontrado). |
5xx | Error interno del servicio. |
Cada error incluye un cuerpo JSON con code, message y detalles adicionales para facilitar la depuración.
Diferencia entre entornos y despliegues
Un entorno define el contexto aislado donde opera un conjunto de servicios (desarrollo, staging, producción). Un despliegue es la acción concreta de llevar una versión de un microservicio a un entorno específico. La API permite gestionar ambos recursos de forma independiente y rastreable.
Variables de entorno vs. runtime settings
- Variables de entorno: valores que no cambian entre reinicios del servicio, como cadenas de conexión o claves externas.
- Runtime settings: parámetros que pueden modificarse en caliente sin redeploy, como umbrales de configuración o flags de funcionalidad.
La API permite leer y escribir ambos tipos de forma diferenciada.
Endpoints
9
Estandar
OpenAPI
services
1 operacionesService listing by category
/b1/microservices/category/{service_category}Lista servicios filtrados por categoría
GET /b1/microservices/category/{service_category}
Devuelve todos los servicios registrados que pertenecen a una categoría específica, como microservice, frontend, app, entre otras.
Parámetros
| Nombre | Ubicación | Requerido | Descripción |
|---|---|---|---|
service_category | path | Sí | Categoría del servicio (microservice, frontend, app, etc.). |
Respuestas
- `200`: Lista de servicios correspondientes a la categoría solicitada.
Notas de implementación
- Utiliza este endpoint para descubrir qué servicios existen dentro de una categoría antes de operar sobre un servicio específico.
- La categoría es un valor de texto que debe coincidir exactamente con las categorías registradas en C4C7OPS.
- Valida que la categoría exista antes de invocar este endpoint; un valor inexistente devuelve una lista vacía en lugar de un error.
Parametros
service_categorypathService category (microservice, frontend, app, etc.)
Respuestas
200Services for categoryenvironments
1 operacionesEnvironments
/b1/microservices/environment/Lista entornos disponibles de la cuenta
GET /b1/microservices/environment/
Devuelve la lista de entornos configurados para la cuenta actual. Cada entorno representa un contexto aislado (desarrollo, staging, producción) donde operan los microservicios.
Parámetros
Este endpoint no recibe parámetros.
Respuestas
- `200`: Listado de entornos disponibles para la cuenta.
Notas de implementación
- Los IDs de entorno obtenidos aquí se utilizan como parámetros en otros endpoints (despliegues, variables de entorno, runtime settings).
- Llama a este endpoint antes de operar sobre un entorno específico para obtener los identificadores correctos.
- Cada entorno incluye al menos un identificador y un nombre descriptivo.
Respuestas
200List environments for the accountdeploys
3 operacionesDeploy operations
/b1/microservices/ms/deployCrea un nuevo despliegue de microservicio
POST /b1/microservices/ms/deploy
Crea un nuevo despliegue para un microservicio en un entorno específico. El cuerpo de la solicitud en formato application/json define los parámetros del despliegue.
Cuerpo de la solicitud
- Content-Type:
application/json - Envía los parámetros del despliegue en el cuerpo de la petición (microservicio, entorno, versión, configuración adicional).
Respuestas
- `200`: Despliegue creado correctamente. La respuesta incluye el identificador del despliegue generado.
Notas de implementación
- Una vez creado el despliegue, utiliza
GET /b1/microservices/ms/deploy/{deploy_id}/statuspara monitorear su progreso. - Verifica que el microservicio y el entorno existan antes de crear el despliegue.
- El despliegue es una acción asíncrona; el código
200confirma la recepción, no la finalización.
Respuestas
200Deploy created/b1/microservices/ms/deploy/{deploy_id}/statusConsulta el estado de los pasos de un despliegue
GET /b1/microservices/ms/deploy/{deploy_id}/status
Devuelve un mapa con el estado de cada paso del despliegue identificado por deploy_id. Permite monitorear el progreso y detectar fallos durante el proceso.
Parámetros
| Nombre | Ubicación | Requerido | Descripción |
|---|---|---|---|
deploy_id | path | Sí | Identificador del despliegue. |
Respuestas
- `200`: Mapa de estados de los pasos del despliegue. Incluye información sobre cada fase del proceso.
Notas de implementación
- Utiliza este endpoint en combinación con un mecanismo de polling o webhooks para detectar cuándo el despliegue finaliza.
- Si un paso falla, el mapa de estados incluirá detalles del error para facilitar la depuración.
- El
deploy_idse obtiene al crear el despliegue conPOST /b1/microservices/ms/deploy.
Parametros
deploy_idpathDeploy id
Respuestas
200Deploy step status map/b1/microservices/ms/{microservice_id}/environment/{environment_id}/deploysLista despliegues de un microservicio en un entorno
GET /b1/microservices/ms/{microserviceid}/environment/{environmentid}/deploys
Devuelve el historial de despliegues para un microservicio específico dentro de un entorno determinado.
Parámetros
| Nombre | Ubicación | Requerido | Descripción |
|---|---|---|---|
microservice_id | path | Sí | Identificador del microservicio. |
environment_id | path | Sí | Identificador del entorno. |
Respuestas
- `200`: Lista de despliegues realizados para el microservicio en el entorno especificado.
Notas de implementación
- Utiliza este endpoint para auditar el historial de despliegues, verificar versiones activas o rastrear cambios.
- Obtén los IDs de microservicio y entorno desde
GET /b1/microservices/category/{service_category}yGET /b1/microservices/environment/respectivamente. - Cada despliegue incluye al menos su identificador, versión y estado.
Parametros
microservice_idpathMicroservice id
environment_idpathEnvironment id
Respuestas
200List of deploysenv-vars
2 operacionesEnvironment variables
/b1/microservices/ms/envsCrea o actualiza variables de entorno
PUT /b1/microservices/ms/envs
Crea o actualiza las variables de entorno para un microservicio. Estas variables son valores que no cambian entre reinicios del servicio, como cadenas de conexión, claves externas o rutas de configuración.
Cuerpo de la solicitud
- Content-Type:
application/json - Envía las variables de entorno en el cuerpo de la petición, incluyendo el microservicio y entorno de destino.
Respuestas
- `200`: Variables de entorno guardadas correctamente.
Notas de implementación
- Este endpoint realiza una operación upsert: crea las variables que no existen y actualiza las que ya están definidas.
- Para parámetros que deban modificarse en caliente sin redeploy, utiliza
PUT /b1/microservices/ms/runtime-settingsen su lugar. - Un cambio en variables de entorno generalmente requiere un nuevo despliegue para que tome efecto.
Respuestas
200Environment variables saved/b1/microservices/ms/{microservice_id}/environment/{environment_id}/envsObtiene variables de entorno de un microservicio
GET /b1/microservices/ms/{microserviceid}/environment/{environmentid}/envs
Devuelve las variables de entorno configuradas para un microservicio específico en un entorno determinado.
Parámetros
| Nombre | Ubicación | Requerido | Descripción |
|---|---|---|---|
microservice_id | path | Sí | Identificador del microservicio. |
environment_id | path | Sí | Identificador del entorno. |
Respuestas
- `200`: Variables de entorno del microservicio en el entorno solicitado.
Notas de implementación
- Las variables de entorno son valores que no cambian entre reinicios (cadenas de conexión, claves externas, etc.).
- Para modificar estas variables, utiliza
PUT /b1/microservices/ms/envs. - Para parámetros dinámicos que no requieren redeploy, consulta
GET /b1/microservices/ms/{microservice_id}/environment/{environment_id}/settings.
Parametros
microservice_idpathMicroservice id
environment_idpathEnvironment id
Respuestas
200Environment variablesruntime-settings
2 operacionesRuntime settings
/b1/microservices/ms/runtime-settingsCrea o actualiza runtime settings
PUT /b1/microservices/ms/runtime-settings
Crea o actualiza los parámetros de runtime para un microservicio. Los runtime settings son valores que pueden modificarse en caliente sin necesidad de redeploy, como umbrales de configuración, flags de funcionalidad o parámetros de ajuste dinámico.
Cuerpo de la solicitud
- Content-Type:
application/json - Envía los runtime settings en el cuerpo de la petición, incluyendo el microservicio y entorno de destino.
Respuestas
- `200`: Runtime settings guardados correctamente.
Notas de implementación
- Este endpoint realiza una operación upsert: crea los settings que no existen y actualiza los ya definidos.
- Para valores que afectan la inicialización del servicio y no deben cambiar en caliente, utiliza
PUT /b1/microservices/ms/envsen su lugar. - Los cambios en runtime settings suelen tomar efecto de inmediato sin requerir un nuevo despliegue.
Respuestas
200Runtime settings saved/b1/microservices/ms/{microservice_id}/environment/{environment_id}/settingsObtiene runtime settings de un microservicio
GET /b1/microservices/ms/{microserviceid}/environment/{environmentid}/settings
Devuelve los parámetros de runtime configurados para un microservicio específico en un entorno determinado. Los runtime settings son valores que pueden modificarse en caliente sin redeploy.
Parámetros
| Nombre | Ubicación | Requerido | Descripción |
|---|---|---|---|
microservice_id | path | Sí | Identificador del microservicio. |
environment_id | path | Sí | Identificador del entorno. |
Respuestas
- `200`: Runtime settings del microservicio en el entorno solicitado.
Notas de implementación
- Los runtime settings son ideales para umbrales de configuración, flags de funcionalidad y parámetros de ajuste dinámico.
- Para modificar estos parámetros, utiliza
PUT /b1/microservices/ms/runtime-settings. - Para valores estáticos que requieren redeploy al cambiar, consulta
GET /b1/microservices/ms/{microservice_id}/environment/{environment_id}/envs.
Parametros
microservice_idpathMicroservice id
environment_idpathEnvironment id
Respuestas
200Runtime settings