¡Bienvenido a este completo tutorial sobre la CLI de Redocly! La CLI de Redocly es una herramienta de línea de comandos potente y todo en uno para definiciones de OpenAPI y Swagger. Te ayuda a construir, gestionar y verificar la calidad de tus descripciones de API a lo largo de todo el ciclo de vida de la API. Ya seas desarrollador, redactor técnico o gerente de producto de API, esta herramienta tiene algo para ti.
Este tutorial pretende ser una inmersión profunda en la CLI de Redocly, llevándote de ser un principiante a un usuario seguro. Cubriremos todo, desde la instalación hasta características avanzadas como reglas de linting personalizadas e integración con CI/CD. Al final de este tutorial, podrás integrar la CLI de Redocly en tu flujo de trabajo diario para mejorar la calidad y documentación de tu API.
¿Quieres una plataforma integrada y todo en uno para que tu equipo de desarrolladores trabaje junto con máxima productividad?
¡Apidog satisface todas tus demandas y reemplaza a Postman a un precio mucho más asequible!
¿Qué es la CLI de Redocly?
Como se indica en su documentación oficial, la CLI de Redocly es tu "utilidad todo en uno para OpenAPI". Es compatible con OpenAPI 3.1, 3.0, 2.0 (Swagger heredado), AsyncAPI y más. Está diseñada para ayudarte con:
- Gobernanza de API: Aplica estándares de diseño de API y consistencia con un linting potente y configurable.
- Documentación de API: Genera documentación de referencia de API hermosa e interactiva con Redoc.
- Mejora del Flujo de Trabajo: Empaqueta definiciones de API de varios archivos, divide definiciones grandes en archivos más pequeños y obtén estadísticas valiosas sobre tus APIs.
Esta herramienta está construida pensando en el rendimiento y la experiencia del usuario, proporcionando una ejecución rápida y mensajes de error legibles por humanos.
¿Por qué usar la CLI de Redocly?
En el mundo actual centrado en las API, mantener definiciones de API de alta calidad es crucial. La CLI de Redocly te ayuda a lograrlo mediante:
- Automatización de Controles de Calidad: La función de linting automatiza el proceso de verificación de tus definiciones de API contra un conjunto de reglas, asegurando la consistencia y previniendo errores comunes.
- Mejora de la Colaboración: Al permitirte dividir una definición de API grande en múltiples archivos, resulta más fácil para los equipos trabajar en diferentes partes de la API simultáneamente. El comando
bundle
luego vuelve a unir todo. - Mejora de la Experiencia del Desarrollador: La documentación interactiva y de alta calidad generada por
build-docs
facilita a los desarrolladores comprender y consumir tus APIs. - Integración con tu Cadena de Herramientas: La CLI de Redocly se puede integrar fácilmente en tu pipeline de CI/CD, haciendo que la calidad de la API sea parte de tu flujo de trabajo automatizado.
Qué cubrirá este tutorial
Este tutorial está estructurado para proporcionar una guía paso a paso para dominar la CLI de Redocly. Esto es lo que cubriremos:
- Capítulo 1: Primeros Pasos: Cubriremos los requisitos previos y te mostraremos cómo instalar y ejecutar la CLI de Redocly.
- Capítulo 2: Comandos y Características Principales: Este capítulo será una inmersión profunda en los comandos más importantes:
lint
,bundle
,split
,build-docs
ystats
. - Capítulo 3: Temas Avanzados: Exploraremos el archivo de configuración
redocly.yaml
y cómo integrar la CLI de Redocly en un flujo de trabajo de GitHub Actions. - Capítulo 4: Ejemplo Práctico: Recorreremos un flujo de trabajo completo y del mundo real, desde la creación de una definición de API de varios archivos hasta la generación de documentación.
¡Comencemos!
Capítulo 1: Primeros Pasos con la CLI de Redocly
Este capítulo te guiará a través de los primeros pasos para usar la CLI de Redocly, desde la instalación hasta la ejecución de tu primer comando.
Requisitos Previos
Antes de comenzar, asegúrate de tener lo siguiente instalado en tu sistema:
- Node.js y npm: La CLI de Redocly es una aplicación de Node.js. Necesitarás tener instalado Node.js (versión 22.12.0 o superior) y npm (versión 10.9.2 o superior). Puedes verificar tus versiones ejecutando
node -v
ynpm -v
en tu terminal.
Instalación
Tienes varias opciones para instalar y usar la CLI de Redocly. Elige la que mejor se adapte a tus necesidades.
Uso de npx
(Recomendado para uso rápido)
Si solo quieres probar la CLI de Redocly sin una instalación global, puedes usar npx
, el ejecutor de paquetes de npm. Este comando descargará y ejecutará la última versión de la CLI de Redocly.
npx @redocly/cli@latest --version
Para usar cualquier comando de redocly
, simplemente antepón npx @redocly/cli@latest
. Por ejemplo:
npx @redocly/cli@latest lint openapi.yaml
Esta es una excelente manera de usar la CLI de Redocly en entornos de CI/CD o si no quieres llenar tu sistema con paquetes globales.
Instalación Global con npm
Para un uso regular, una instalación global es más conveniente. Hace que el comando redocly
esté directamente disponible en tu terminal.
npm install -g @redocly/cli@latest
Después de la instalación, puedes verificarla comprobando la versión:
redocly --version
Ahora puedes ejecutar comandos como este:
redocly lint openapi.yaml
Uso de Docker
Si prefieres usar Docker, Redocly proporciona una imagen de Docker preconstruida. Esto es útil para aislar la herramienta de tu entorno local.
Primero, descarga la imagen desde Docker Hub:
docker pull redocly/cli
Para ejecutar un comando, necesitas montar tu directorio de trabajo actual (donde están tus archivos de API) como un volumen en el contenedor de Docker.
docker run --rm -v $PWD:/spec redocly/cli lint /spec/openapi.yaml
En este comando, `$PWD` se refiere a tu directorio actual, que se monta en el directorio `/spec` dentro del contenedor. Luego debes referirte a tus archivos usando la ruta `/spec`.
Estructura Básica de Comandos
La estructura básica para usar la CLI de Redocly es:
redocly [comando] [argumentos] [opciones]
comando
: La acción que quieres realizar (p. ej.,lint
,bundle
).argumentos
: Normalmente la ruta a tu archivo de definición de API raíz (p. ej.,openapi.yaml
).opciones
: Banderas para personalizar el comportamiento del comando (p. ej.,-output
,-format
).
Siempre puedes obtener ayuda para un comando específico usando la opción --help
:
redocly lint --help
Ahora que tienes la CLI de Redocly instalada y entiendes la estructura básica de comandos, pasemos a explorar sus potentes características.
Capítulo 2: Comandos y Características Principales
Este capítulo cubre los comandos principales de la CLI de Redocly. Exploraremos cómo hacer linting, gestionar, documentar y analizar tus definiciones de API. Para los ejemplos de este capítulo, usaremos un archivo openapi.yaml
simple.
Creemos un archivo llamado openapi.yaml
con el siguiente contenido:
openapi: 3.0.0
info:
title: Simple Pet Store API
version: 1.0.0
description: A simple API to manage pets.
servers:
- url: <http://localhost:8080/api>
paths:
/pets:
get:
summary: List all pets
operationId: listPets
responses:
'200':
description: An array of pets.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
components:
schemas:
Pet:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
tag:
type: string
Sección 2.1: Linting de tus Descripciones de API (`lint`)
El linting de API es el proceso de verificar tu archivo de definición de API en busca de consistencia, corrección y estilo. Te ayuda a aplicar pautas de diseño de API y a detectar posibles problemas antes de que lleguen a producción.
Uso Básico
El comando lint
se utiliza para verificar tu definición de API contra un conjunto de reglas.
redocly lint openapi.yaml
Por defecto, redocly lint
usa el conjunto de reglas recommended
. Si nuestro openapi.yaml
tiene problemas, la salida los detallará. Para nuestro archivo de ejemplo, la salida debería ser:
validating openapi.yaml...
openapi.yaml: validated in 58ms
Woohoo! Your API description is valid. 🎉
Configuración de Reglas
La CLI de Redocly viene con tres conjuntos de reglas configurables integrados:
minimal
: Un pequeño conjunto de reglas que principalmente verifica la validez de la especificación.recommended
: Un conjunto de reglas más completo que aplica las mejores prácticas comunes. Este es el predeterminado.recommended-strict
: Una versión más estricta del conjunto de reglas recomendado.
Puedes especificar un conjunto de reglas con la opción --extends
:
redocly lint openapi.yaml --extends=minimal
También puedes crear tus propios conjuntos de reglas personalizadas en un archivo de configuración redocly.yaml
. Cubriremos esto en el Capítulo 3.
Formatos de Salida
El comando lint
admite varios formatos de salida utilizando la opción --format
, lo cual es muy útil para integrarse con otras herramientas.
codeframe
(predeterminado): Muestra el contexto del código para cada problema.stylish
: Un formato más compacto y legible por humanos.json
: Genera un objeto JSON con todos los problemas, perfecto para procesamiento automático.checkstyle
: Formato XML compatible con Checkstyle.github-actions
: Un formato que se integra con las anotaciones de GitHub Actions.markdown
: Una tabla Markdown de los resultados, ideal para informes.
Ejemplo de uso del formato stylish
:
redocly lint openapi.yaml --format=stylish
Ignorar Problemas
A veces puede que necesites ignorar un problema específico. Puedes generar un archivo .redocly.lint-ignore.yaml
para suprimir errores y advertencias.
redocly lint openapi.yaml --generate-ignore-file
Este comando creará un archivo de ignorados. Si ejecutas lint
de nuevo, los problemas listados en este archivo serán ignorados. Esto te da un control granular sobre el proceso de linting.
Sección 2.2: Gestión de Descripciones de API con bundle
y split
A medida que tu API crece, gestionar un único archivo OpenAPI monolítico se vuelve engorroso. La CLI de Redocly proporciona dos comandos para ayudar con esto: split
y bundle
.
Dividir un Archivo OpenAPI Grande (`split`)
El comando split
te permite dividir un archivo de definición de API grande en una estructura de múltiples archivos más manejable. Extrae componentes, rutas y ejemplos en archivos y carpetas separadas.
Dividamos nuestro openapi.yaml
:
redocly split openapi.yaml --outDir=split-api
Este comando creará un directorio split-api
con la siguiente estructura:
split-api/
├── components/
│ └── schemas/
│ └── Pet.yaml
├── paths/
│ └── pets.yaml
└── openapi.yaml
El nuevo openapi.yaml
en split-api
ahora usará `$ref` para enlazar a los archivos externos:
# split-api/openapi.yaml
openapi: 3.0.0
info:
title: Simple Pet Store API
# ...
paths:
/pets:
$ref: ./paths/pets.yaml
components:
schemas:
Pet:
$ref: ./components/schemas/Pet.yaml
Esto hace que sea mucho más fácil gestionar diferentes partes de tu API.
Empaquetar Múltiples Archivos (`bundle`)
El comando bundle
hace lo contrario de split
. Toma un archivo de definición de API raíz y resuelve todas las referencias `$ref` locales para crear un único archivo autocontenido. Esto es útil para herramientas que no admiten definiciones de múltiples archivos.
Empaquetemos nuestra API dividida de nuevo en un solo archivo:
redocly bundle split-api/openapi.yaml --output bundled-api.yaml
El bundled-api.yaml
tendrá el mismo contenido que nuestro openapi.yaml
original.
Desreferenciación
El comando bundle
también puede crear un archivo completamente desreferenciado, donde todas las referencias `$ref` (incluidas las remotas) se resuelven y se reemplazan con su contenido.
redocly bundle split-api/openapi.yaml --output dereferenced-api.yaml --dereferenced
Esto puede ser útil, pero ten en cuenta que puede hacer que el archivo sea mucho más grande y que las referencias circulares pueden causar problemas con la salida JSON.
Sección 2.3: Generación de Documentación de API (`build-docs`)
Una de las características más potentes de la CLI de Redocly es su capacidad para generar documentación de referencia de API hermosa e interactiva utilizando el motor de código abierto Redoc.
Uso Básico
Para generar documentación, usa el comando build-docs
:
redocly build-docs openapi.yaml
Esto creará un archivo redoc-static.html
en tu directorio actual. Ábrelo en tu navegador para ver tu documentación.
Puedes especificar un archivo de salida diferente con la opción -o
o --output
:
redocly build-docs openapi.yaml -o my-api-docs.html
Personalización de la Salida
Puedes personalizar la apariencia de tu documentación usando la opción --theme.openapi
. Esto te permite cambiar colores, fuentes e incluso deshabilitar partes de la interfaz de usuario como la barra de búsqueda.
Por ejemplo, para deshabilitar la barra de búsqueda:
redocly build-docs openapi.yaml --theme.openapi.disableSearch
Puedes encontrar todas las opciones de tema disponibles en la documentación oficial de Redocly.
Para un control aún mayor, puedes proporcionar tu propia plantilla Handlebars para renderizar la documentación. Esta es una característica avanzada que permite una personalización completa de la salida HTML.
Sección 2.4: Obtención de Estadísticas de API (`stats`)
El comando stats
proporciona métricas útiles sobre tu definición de API, como el número de rutas, operaciones, esquemas y más.
Cómo obtener Estadísticas
Para obtener estadísticas de tu API, simplemente ejecuta:
redocly stats openapi.yaml
La salida predeterminada está en formato stylish
:
Document: openapi.yaml stats:
🚗 References: 1
📦 External Documents: 0
📈 Schemas: 1
👉 Parameters: 0
🔗 Links: 0
🔀 Path Items: 1
👷 Operations: 1
🔖 Tags: 0
openapi.yaml: stats processed in 22ms
Diferentes Formatos
Al igual que el comando lint
, stats
admite diferentes formatos de salida con la opción --format
. Los formatos json
y markdown
son particularmente útiles.
-format=json
:
redocly stats openapi.yaml --format=json
Esto es genial para alimentar las estadísticas a otras herramientas o paneles.
-format=markdown
:
redocly stats openapi.yaml --format=markdown
Esto genera una tabla Markdown, que es perfecta para informes o para usar en resúmenes de GitHub Actions, como veremos en el próximo capítulo.
Capítulo 3: Temas Avanzados
En este capítulo, profundizaremos en algunas de las características más avanzadas de la CLI de Redocly, incluido el potente archivo de configuración y la integración con pipelines de CI/CD.
Archivo de Configuración (`redocly.yaml`)
Si bien puedes usar la CLI de Redocly completamente desde la línea de comandos, un archivo de configuración redocly.yaml
te permite almacenar tu configuración en un solo lugar, haciendo que tus comandos sean más cortos y tu configuración reutilizable.
Creemos un archivo redocly.yaml
en la raíz de nuestro proyecto:
# redocly.yaml
# This is a sample configuration file.
# For a full list of options, see the Redocly documentation.
apis:
main:
root: openapi.yaml
lint:
extends:
- recommended
rules:
# You can customize rules here.
# For example, make sure all operations have a summary.
operation-summary: error
Estructura del Archivo de Configuración
apis
: Esta sección te permite definir alias para tus definiciones de API. En el ejemplo anterior, hemos creado un aliasmain
para nuestro archivoopenapi.yaml
.lint
: Esta sección contiene la configuración para el comandolint
. Puedes especificar qué conjuntos de reglas extender y personalizar reglas individuales.- Otras secciones: También puedes configurar otras partes de Redocly, como decoradores para transformar tu API.
Uso de Alias de API
Con la sección apis
configurada, ahora puedes usar el alias main
en lugar de la ruta del archivo en tus comandos:
redocly lint main
redocly stats main
redocly build-docs main
Esto es especialmente útil cuando tienes múltiples APIs en tu proyecto. Si ejecutas redocly lint
sin argumentos, hará linting de todas las APIs definidas en la sección apis
.
Integración Continua (CI)
Integrar la CLI de Redocly en tu pipeline de CI/CD es una forma fantástica de automatizar los controles de calidad de la API. Aquí tienes un ejemplo de cómo usarla con GitHub Actions.
Crea un archivo llamado .github/workflows/redocly.yaml
:
name: Redocly CLI Checks
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
lint-and-stats:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '16'
- name: Install Redocly CLI
run: npm install -g @redocly/cli@latest
- name: Lint API definition
run: redocly lint openapi.yaml --format=github-actions
- name: Get API stats
run: redocly stats openapi.yaml --format=markdown >> $GITHUB_STEP_SUMMARY
Este flujo de trabajo de GitHub Actions hace lo siguiente:
- Se activa en cada push y pull request a la rama
main
. - Clona tu código.
- Instala Node.js y la CLI de Redocly.
- Ejecuta el comando
lint
con el formatogithub-actions
. Esto anotará automáticamente cualquier problema directamente en tus pull requests. - Ejecuta el comando
stats
con el formatomarkdown
y añade la salida al resumen del trabajo, dándote un buen informe en cada ejecución.
Esta es una forma potente de asegurar que tus definiciones de API estén siempre en buen estado.
Capítulo 4: Ejemplo Práctico: Un Flujo de Trabajo Completo
En este último capítulo, pondremos todo lo que hemos aprendido junto y recorreremos un flujo de trabajo completo y práctico. Haremos lo siguiente:
- Crear una estructura de proyecto con una definición de API de múltiples archivos.
- Crear un archivo de configuración
redocly.yaml
. - Hacer linting de la definición de API usando nuestra configuración personalizada.
- Empaquetar la API en un solo archivo.
- Generar documentación de API.
1. Configuración del Proyecto
Creemos un nuevo directorio para nuestro proyecto y configuremos la estructura de archivos.
mkdir redocly-petstore
cd redocly-petstore
mkdir -p openapi/components/schemas openapi/paths
Ahora, creemos los archivos de API divididos.
openapi/components/schemas/Pet.yaml
:
type: object
properties:
id:
type: integer
format: int64
name:
type: string
tag:
type: string
openapi/paths/pets.yaml
:
get:
summary: List all pets
operationId: listPets
responses:
'200':
description: An array of pets.
content:
application/json:
schema:
type: array
items:
$ref: ../components/schemas/Pet.yaml
openapi/root.yaml
(nuestro punto de entrada principal):
openapi: 3.0.0
info:
title: Petstore API
version: 1.0.0
description: A professional API for managing pets.
servers:
- url: <https://api.petstore.com/v1>
paths:
/pets:
$ref: ./paths/pets.yaml
2. Crear redocly.yaml
Ahora, creemos nuestro archivo de configuración en la raíz del directorio redocly-petstore
.
redocly.yaml
:
apis:
petstore@v1:
root: openapi/root.yaml
lint:
extends:
- recommended
rules:
operation-summary: error
no-path-trailing-slash: warn
tag-description: error
En esta configuración, hemos definido un alias petstore@v1
para nuestra API y hemos añadido algunas reglas de linting personalizadas.
3. Hacer Linting de la API
Ahora, hagamos linting de nuestra API usando nuestra nueva configuración.
redocly lint petstore@v1
Verás algunos errores y advertencias porque nuestra API aún no cumple con todas nuestras nuevas reglas. Por ejemplo, no tenemos etiquetas con descripciones. Esto demuestra cómo puedes aplicar tu propia guía de estilo de API.
4. Empaquetar la API
A continuación, empaquetemos nuestra API de múltiples archivos en un único archivo distribuible.
redocly bundle petstore@v1 -o dist/petstore.yaml
Esto creará un directorio dist
con un archivo petstore.yaml
dentro, conteniendo la definición de API completamente resuelta.
5. Generar Documentación
Finalmente, generemos nuestra documentación de API.
redocly build-docs petstore@v1 -o dist/petstore-docs.html
Esto creará dist/petstore-docs.html
. Abre este archivo en tu navegador para ver tu hermosa e interactiva documentación de API.
¡Y ahí lo tienes! Un flujo de trabajo completo desde una definición de API estructurada y de múltiples archivos hasta un archivo empaquetado y documentación profesional, todo gestionado con la CLI de Redocly.
Conclusión
En este tutorial, hemos realizado una inmersión profunda en la CLI de Redocly. Comenzamos con los conceptos básicos de instalación y comandos principales, luego pasamos a temas avanzados como la configuración y la integración con CI, y finalmente recorrimos un flujo de trabajo completo y práctico.
Ahora deberías tener una comprensión sólida de cómo usar la CLI de Redocly para:
- Hacer Linting de tus definiciones de API para aplicar calidad y consistencia.
- Gestionar tus archivos de API con
bundle
ysplit
. - Generar documentación de API hermosa e interactiva con
build-docs
. - Analizar tus APIs con
stats
. - Automatizar todo esto en un pipeline de CI/CD.
La CLI de Redocly es una herramienta versátil y potente que puede mejorar significativamente tu flujo de trabajo de desarrollo de API. Te animo a explorar sus características más a fondo e integrarla en tus proyectos.
Recursos Adicionales
- Documentación Oficial de la CLI de Redocly: https://redocly.com/docs/cli/
- Repositorio de GitHub de Redocly: https://github.com/Redocly/redocly-cli
- Especificación OpenAPI: https://spec.openapis.org/oas/v3.1.0
Gracias por seguir este tutorial. ¡Feliz construcción de APIs!
¿Quieres una plataforma integrada y todo en uno para que tu equipo de desarrolladores trabaje junto con máxima productividad?
¡Apidog satisface todas tus demandas y reemplaza a Postman a un precio mucho más asequible!