API de microservicios de C4C7OPS
Referencia OpenAPI de la API de microservicios de C4C7OPS para integraciones técnicas.
microservices-apiAPI 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.
Services
1 operaciones/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.
| 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.
Environments
1 operaciones/b1/microservices/environment/Lista los entornos disponibles
GET /b1/microservices/environment/
Devuelve todos los entornos configurados para la cuenta autenticada (por ejemplo desarrollo, staging o producción), junto con su identificador único.
Sin parámetros
Respuestas
200: Lista de entornos disponibles para la cuenta.
Notas de implementación
- Usa el environment_id devuelto aquí para filtrar despliegues, variables de entorno y runtime settings en los demás endpoints.
- Los entornos son específicos de cada cuenta; no se comparten entre organizaciones.
Deploys
3 operaciones/b1/microservices/ms/deployCrea un nuevo despliegue
POST /b1/microservices/ms/deploy
Crea un despliegue de un microservicio en un entorno específico, a partir de un tag o rama del repositorio. Opcionalmente puede aprovisionar infraestructura nueva.
| Nombre | Ubicación | Requerido | Descripción |
|---|---|---|---|
microservice_id | body | sí | ID del microservicio a desplegar. |
environment_id | body | sí | ID del entorno destino. |
tag | body | sí | Tag o rama del repositorio a desplegar. |
create_new_infrastructure | body | no | Si es true, aprovisiona infraestructura nueva para el despliegue. |
Respuestas
200: Despliegue creado, incluye el deploy_id generado.
Notas de implementación
- Solo microservice_id, environment_id y tag son obligatorios; el resto de campos son opcionales.
- Usa el deploy_id de la respuesta para consultar el estado con el endpoint de status.
/b1/microservices/ms/deploy/{deploy_id}/statusConsulta el estado de un despliegue
GET /b1/microservices/ms/deploy/{deploy_id}/status
Devuelve el mapa de estado de cada paso del pipeline de despliegue (por ejemplo build, provisión, publicación).
| Nombre | Ubicación | Requerido | Descripción |
|---|---|---|---|
deploy_id | path | sí | ID del despliegue. |
Respuestas
200: Mapa de estado por paso del despliegue.
Notas de implementación
- Ideal para hacer polling desde un pipeline de CI/CD hasta confirmar que el despliegue finalizó.
/b1/microservices/ms/{microservice_id}/environment/{environment_id}/deploysHistorial de despliegues
GET /b1/microservices/ms/{microservice_id}/environment/{environment_id}/deploys
Devuelve el historial de despliegues realizados para un microservicio en un entorno específico.
| Nombre | Ubicación | Requerido | Descripción |
|---|---|---|---|
microservice_id | path | sí | ID del microservicio. |
environment_id | path | sí | ID del entorno. |
Respuestas
200: Lista de despliegues del microservicio en ese entorno.
Notas de implementación
- Útil para auditar qué versiones se han desplegado y cuándo.
Env-vars
2 operaciones/b1/microservices/ms/envsCrea o actualiza variables de entorno
PUT /b1/microservices/ms/envs
Crea o actualiza las variables de entorno de un microservicio para un entorno específico. Estos valores no cambian entre reinicios del servicio.
| Nombre | Ubicación | Requerido | Descripción |
|---|---|---|---|
microservice_id | body | sí | ID del microservicio. |
environment_id | body | sí | ID del entorno. |
variables | body | sí | Mapa clave-valor con las variables de entorno. |
Respuestas
200: Variables de entorno guardadas.
Notas de implementación
- Esta operación reemplaza el conjunto de variables existente para el microservicio y entorno indicados.
- Requiere un redeploy del microservicio para que los nuevos valores tomen efecto.
/b1/microservices/ms/{microservice_id}/environment/{environment_id}/envsConsulta variables de entorno
GET /b1/microservices/ms/{microservice_id}/environment/{environment_id}/envs
Devuelve las variables de entorno configuradas para un microservicio en un entorno específico.
| Nombre | Ubicación | Requerido | Descripción |
|---|---|---|---|
microservice_id | path | sí | ID del microservicio. |
environment_id | path | sí | ID del entorno. |
Respuestas
200: Variables de entorno configuradas.
Notas de implementación
- Los valores sensibles pueden aparecer enmascarados según la configuración de seguridad de la cuenta.
Runtime-settings
2 operaciones/b1/microservices/ms/runtime-settingsCrea o actualiza runtime settings
PUT /b1/microservices/ms/runtime-settings
Crea o actualiza los runtime settings de un microservicio para un entorno específico. Estos parámetros pueden modificarse en caliente, sin necesidad de redeploy.
| Nombre | Ubicación | Requerido | Descripción |
|---|---|---|---|
microservice_id | body | sí | ID del microservicio. |
environment_id | body | sí | ID del entorno. |
settings | body | sí | Mapa clave-valor con los runtime settings. |
Respuestas
200: Runtime settings guardados.
Notas de implementación
- Los cambios se aplican de forma dinámica, sin reiniciar el microservicio.
- Útil para flags de funcionalidad o umbrales de configuración que cambian con frecuencia.
/b1/microservices/ms/{microservice_id}/environment/{environment_id}/settingsConsulta runtime settings
GET /b1/microservices/ms/{microservice_id}/environment/{environment_id}/settings
Devuelve los runtime settings configurados para un microservicio en un entorno específico.
| Nombre | Ubicación | Requerido | Descripción |
|---|---|---|---|
microservice_id | path | sí | ID del microservicio. |
environment_id | path | sí | ID del entorno. |
Respuestas
200: Runtime settings configurados.
Notas de implementación
- Combina esta consulta con el endpoint de actualización para construir paneles de configuración en caliente.