Codifly
API de producto

API de microservicios de C4C7OPS

Referencia OpenAPI de la API de microservicios de C4C7OPS para integraciones tecnicas.

Referencia OpenAPIv0.2.3

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

Table
CódigoSignificado
400Parámetros de entrada inválidos o mal formateados.
401Falta de autenticación o token inválido.
403Permisos insuficientes para el recurso solicitado.
404El recurso no existe (microservicio, entorno o despliegue no encontrado).
5xxError 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 operaciones

Service listing by category

GET/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

Table
NombreUbicaciónRequeridoDescripción
service_categorypathCategorí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_categorypath

Service category (microservice, frontend, app, etc.)

obligatorio

Respuestas

200Services for category

environments

1 operaciones

Environments

GET/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 account

deploys

3 operaciones

Deploy operations

POST/b1/microservices/ms/deploy

Crea 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}/status para 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 200 confirma la recepción, no la finalización.

Respuestas

200Deploy created
Cuerpo de solicitud: application/json
GET/b1/microservices/ms/deploy/{deploy_id}/status

Consulta 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

Table
NombreUbicaciónRequeridoDescripción
deploy_idpathIdentificador 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_id se obtiene al crear el despliegue con POST /b1/microservices/ms/deploy.

Parametros

deploy_idpath

Deploy id

obligatorio

Respuestas

200Deploy step status map
GET/b1/microservices/ms/{microservice_id}/environment/{environment_id}/deploys

Lista 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

Table
NombreUbicaciónRequeridoDescripción
microservice_idpathIdentificador del microservicio.
environment_idpathIdentificador 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} y GET /b1/microservices/environment/ respectivamente.
  • Cada despliegue incluye al menos su identificador, versión y estado.

Parametros

microservice_idpath

Microservice id

obligatorio
environment_idpath

Environment id

obligatorio

Respuestas

200List of deploys

env-vars

2 operaciones

Environment variables

PUT/b1/microservices/ms/envs

Crea 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-settings en su lugar.
  • Un cambio en variables de entorno generalmente requiere un nuevo despliegue para que tome efecto.

Respuestas

200Environment variables saved
Cuerpo de solicitud: application/json
GET/b1/microservices/ms/{microservice_id}/environment/{environment_id}/envs

Obtiene 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

Table
NombreUbicaciónRequeridoDescripción
microservice_idpathIdentificador del microservicio.
environment_idpathIdentificador 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_idpath

Microservice id

obligatorio
environment_idpath

Environment id

obligatorio

Respuestas

200Environment variables

runtime-settings

2 operaciones

Runtime settings

PUT/b1/microservices/ms/runtime-settings

Crea 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/envs en su lugar.
  • Los cambios en runtime settings suelen tomar efecto de inmediato sin requerir un nuevo despliegue.

Respuestas

200Runtime settings saved
Cuerpo de solicitud: application/json
GET/b1/microservices/ms/{microservice_id}/environment/{environment_id}/settings

Obtiene 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

Table
NombreUbicaciónRequeridoDescripción
microservice_idpathIdentificador del microservicio.
environment_idpathIdentificador 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_idpath

Microservice id

obligatorio
environment_idpath

Environment id

obligatorio

Respuestas

200Runtime settings