Bienvenue dans ce tutoriel complet sur Redocly CLI ! Redocly CLI est un outil puissant et tout-en-un en ligne de commande pour les définitions OpenAPI et Swagger. Il vous aide à construire, gérer et vérifier la qualité de vos descriptions d'API tout au long du cycle de vie de l'API. Que vous soyez développeur, rédacteur technique ou chef de produit API, cet outil a quelque chose pour vous.
Ce tutoriel vise à être une exploration approfondie de Redocly CLI, vous faisant passer de débutant à utilisateur confiant. Nous couvrirons tout, de l'installation aux fonctionnalités avancées comme les règles de linting personnalisées et l'intégration CI/CD. À la fin de ce tutoriel, vous serez capable d'intégrer Redocly CLI dans votre flux de travail quotidien pour améliorer la qualité et la documentation de votre API.
Vous voulez une plateforme intégrée et tout-en-un pour que votre équipe de développeurs travaille ensemble avec une productivité maximale ?
Apidog répond à toutes vos demandes et remplace Postman à un prix beaucoup plus abordable !
Qu'est-ce que Redocly CLI ?
Comme indiqué dans sa documentation officielle, Redocly CLI est votre "utilitaire OpenAPI tout-en-un". Il prend en charge OpenAPI 3.1, 3.0, 2.0 (ancien Swagger), AsyncAPI, et plus encore. Il est conçu pour vous aider avec :
- La gouvernance d'API : Appliquez les normes de conception d'API et la cohérence grâce à un linting puissant et configurable.
- La documentation d'API : Générez une documentation de référence d'API magnifique et interactive avec Redoc.
- L'amélioration du flux de travail : Regroupez les définitions d'API multi-fichiers, divisez les grandes définitions en fichiers plus petits, et obtenez des statistiques précieuses sur vos API.
Cet outil est conçu en tenant compte des performances et de l'expérience utilisateur, offrant une exécution rapide et des messages d'erreur lisibles par l'homme.
Pourquoi utiliser Redocly CLI ?
Dans le monde actuel où l'API est primordiale, maintenir des définitions d'API de haute qualité est crucial. Redocly CLI vous aide à y parvenir en :
- Automatisant les contrôles de qualité : La fonction de linting automatise le processus de vérification de vos définitions d'API par rapport à un ensemble de règles, garantissant la cohérence et prévenant les erreurs courantes.
- Améliorant la collaboration : En vous permettant de diviser une grande définition d'API en plusieurs fichiers, il devient plus facile pour les équipes de travailler simultanément sur différentes parties de l'API. La commande
bundle
rassemble ensuite le tout. - Améliorant l'expérience développeur : Une documentation de haute qualité et interactive générée par
build-docs
permet aux développeurs de comprendre et de consommer plus facilement vos API. - S'intégrant à votre chaîne d'outils : Redocly CLI peut être facilement intégré dans votre pipeline CI/CD, faisant de la qualité de l'API une partie de votre flux de travail automatisé.
Ce que ce tutoriel couvrira
Ce tutoriel est structuré pour fournir un guide étape par étape pour maîtriser Redocly CLI. Voici ce que nous couvrirons :
- Chapitre 1 : Premiers pas : Nous couvrirons les prérequis et vous montrerons comment installer et exécuter Redocly CLI.
- Chapitre 2 : Commandes et fonctionnalités principales : Ce chapitre sera une exploration approfondie des commandes les plus importantes :
lint
,bundle
,split
,build-docs
, etstats
. - Chapitre 3 : Sujets avancés : Nous explorerons le fichier de configuration
redocly.yaml
et comment intégrer Redocly CLI dans un flux de travail GitHub Actions. - Chapitre 4 : Exemple pratique : Nous passerons en revue un flux de travail complet et réel, de la création d'une définition d'API multi-fichiers à la génération de documentation.
Commençons !
Chapitre 1 : Premiers pas avec Redocly CLI
Ce chapitre vous guidera à travers les premières étapes de l'utilisation de Redocly CLI, de l'installation à l'exécution de votre première commande.
Prérequis
Avant de commencer, assurez-vous d'avoir les éléments suivants installés sur votre système :
- Node.js et npm : Redocly CLI est une application Node.js. Vous aurez besoin de Node.js (version 22.12.0 ou supérieure) et de npm (version 10.9.2 ou supérieure) installés. Vous pouvez vérifier vos versions en exécutant
node -v
etnpm -v
dans votre terminal.
Installation
Vous avez plusieurs options pour installer et utiliser Redocly CLI. Choisissez celle qui correspond le mieux à vos besoins.
Utilisation de npx
(Recommandé pour une utilisation rapide)
Si vous souhaitez simplement essayer Redocly CLI sans installation globale, vous pouvez utiliser npx
, l'exécuteur de paquets npm. Cette commande téléchargera et exécutera la dernière version de Redocly CLI.
npx @redocly/cli@latest --version
Pour utiliser n'importe quelle commande redocly
, il suffit de préfixer npx @redocly/cli@latest
. Par exemple :
npx @redocly/cli@latest lint openapi.yaml
C'est un excellent moyen d'utiliser Redocly CLI dans des environnements CI/CD ou si vous ne souhaitez pas encombrer votre système avec des paquets globaux.
Installation globale avec npm
Pour une utilisation régulière, une installation globale est plus pratique. Elle rend la commande redocly
directement disponible dans votre terminal.
npm install -g @redocly/cli@latest
Après l'installation, vous pouvez la vérifier en vérifiant la version :
redocly --version
Vous pouvez maintenant exécuter des commandes comme celle-ci :
redocly lint openapi.yaml
Utilisation de Docker
Si vous préférez utiliser Docker, Redocly fournit une image Docker pré-construite. C'est utile pour isoler l'outil de votre environnement local.
Tout d'abord, téléchargez l'image depuis Docker Hub :
docker pull redocly/cli
Pour exécuter une commande, vous devez monter votre répertoire de travail actuel (où se trouvent vos fichiers API) en tant que volume dans le conteneur Docker.
docker run --rm -v $PWD:/spec redocly/cli lint /spec/openapi.yaml
Dans cette commande, $PWD
fait référence à votre répertoire actuel, qui est monté sur le répertoire /spec
à l'intérieur du conteneur. Vous devez ensuite faire référence à vos fichiers en utilisant le chemin /spec
.
Structure de base des commandes
La structure de base pour utiliser Redocly CLI est la suivante :
redocly [commande] [arguments] [options]
commande
: L'action que vous souhaitez effectuer (par exemple,lint
,bundle
).arguments
: Généralement le chemin d'accès à votre fichier de définition d'API racine (par exemple,openapi.yaml
).options
: Drapeaux pour personnaliser le comportement de la commande (par exemple,-output
,-format
).
Vous pouvez toujours obtenir de l'aide pour une commande spécifique en utilisant l'option --help
:
redocly lint --help
Maintenant que vous avez installé Redocly CLI et que vous comprenez la structure de base des commandes, passons à l'exploration de ses fonctionnalités puissantes.
Chapitre 2 : Commandes et fonctionnalités principales
Ce chapitre couvre les commandes principales de Redocly CLI. Nous explorerons comment linter, gérer, documenter et analyser vos définitions d'API. Pour les exemples de ce chapitre, nous utiliserons un simple fichier openapi.yaml
.
Créons un fichier nommé openapi.yaml
avec le contenu suivant :
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
Section 2.1 : Linting de vos descriptions d'API (lint
)
Le linting d'API est le processus de vérification de votre fichier de définition d'API pour la cohérence, la correction et le style. Il vous aide à appliquer les directives de conception d'API et à détecter les problèmes potentiels avant qu'ils n'atteignent la production.
Utilisation de base
La commande lint
est utilisée pour vérifier votre définition d'API par rapport à un ensemble de règles.
redocly lint openapi.yaml
Par défaut, redocly lint
utilise l'ensemble de règles recommended
. Si notre openapi.yaml
présente des problèmes, la sortie les détaillera. Pour notre fichier d'exemple, la sortie devrait être :
validating openapi.yaml...
openapi.yaml: validated in 58ms
Woohoo! Your API description is valid. 🎉
Configuration des règles
Redocly CLI est livré avec trois ensembles de règles configurables intégrés :
minimal
: Un petit ensemble de règles qui vérifie principalement la validité de la spécification.recommended
: Un ensemble de règles plus complet qui applique les meilleures pratiques courantes. C'est la valeur par défaut.recommended-strict
: Une version plus stricte de l'ensemble de règles recommandé.
Vous pouvez spécifier un ensemble de règles avec l'option --extends
:
redocly lint openapi.yaml --extends=minimal
Vous pouvez également créer vos propres ensembles de règles personnalisés dans un fichier de configuration redocly.yaml
. Nous couvrirons cela au Chapitre 3.
Formats de sortie
La commande lint
prend en charge divers formats de sortie en utilisant l'option --format
, ce qui est très utile pour l'intégration avec d'autres outils.
codeframe
(par défaut) : Affiche le contexte du code pour chaque problème.stylish
: Un format plus compact et lisible par l'homme.json
: Sortie d'un objet JSON avec tous les problèmes, parfait pour le traitement machine.checkstyle
: Format XML compatible avec Checkstyle.github-actions
: Un format qui s'intègre aux annotations GitHub Actions.markdown
: Une table Markdown des résultats, idéale pour les rapports.
Exemple d'utilisation du format stylish
:
redocly lint openapi.yaml --format=stylish
Ignorer les problèmes
Parfois, vous pourriez avoir besoin d'ignorer un problème spécifique. Vous pouvez générer un fichier .redocly.lint-ignore.yaml
pour supprimer les erreurs et les avertissements.
redocly lint openapi.yaml --generate-ignore-file
Cette commande créera un fichier d'ignorance. Si vous exécutez à nouveau lint
, les problèmes listés dans ce fichier seront ignorés. Cela vous donne un contrôle granulaire sur le processus de linting.
Section 2.2 : Gestion des descriptions d'API avec bundle
et split
Au fur et à mesure que votre API se développe, la gestion d'un seul fichier OpenAPI monolithique devient fastidieuse. Redocly CLI propose deux commandes pour vous aider : split
et bundle
.
Division d'un grand fichier OpenAPI (split
)
La commande split
vous permet de décomposer un grand fichier de définition d'API en une structure multi-fichiers plus gérable. Elle extrait les composants, les chemins et les exemples dans des fichiers et dossiers séparés.
Divisons notre openapi.yaml
:
redocly split openapi.yaml --outDir=split-api
Cette commande créera un répertoire split-api
avec la structure suivante :
split-api/
├── components/
│ └── schemas/
│ └── Pet.yaml
├── paths/
│ └── pets.yaml
└── openapi.yaml
Le nouveau fichier openapi.yaml
dans split-api
utilisera maintenant $ref
pour lier aux fichiers externes :
# 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
Cela rend la gestion des différentes parties de votre API beaucoup plus facile.
Regroupement de plusieurs fichiers (bundle
)
La commande bundle
fait l'inverse de split
. Elle prend un fichier de définition d'API racine et résout toutes les références $ref
locales pour créer un seul fichier autonome. C'est utile pour les outils qui ne prennent pas en charge les définitions multi-fichiers.
Regroupons notre API divisée en un seul fichier :
redocly bundle split-api/openapi.yaml --output bundled-api.yaml
Le fichier bundled-api.yaml
aura le même contenu que notre fichier openapi.yaml
original.
Déréférencement
La commande bundle
peut également créer un fichier entièrement déréférencé, où toutes les références $ref
(y compris les références distantes) sont résolues et remplacées par leur contenu.
redocly bundle split-api/openapi.yaml --output dereferenced-api.yaml --dereferenced
Cela peut être utile, mais sachez que cela peut rendre le fichier beaucoup plus grand et que les références circulaires peuvent causer des problèmes avec la sortie JSON.
Section 2.3 : Génération de documentation d'API (build-docs
)
L'une des fonctionnalités les plus puissantes de Redocly CLI est sa capacité à générer une documentation de référence d'API magnifique et interactive en utilisant le moteur open source Redoc.
Utilisation de base
Pour générer de la documentation, utilisez la commande build-docs
:
redocly build-docs openapi.yaml
Cela créera un fichier redoc-static.html
dans votre répertoire actuel. Ouvrez-le dans votre navigateur pour voir votre documentation.
Vous pouvez spécifier un autre fichier de sortie avec l'option -o
ou --output
:
redocly build-docs openapi.yaml -o my-api-docs.html
Personnalisation de la sortie
Vous pouvez personnaliser l'apparence de votre documentation en utilisant l'option --theme.openapi
. Cela vous permet de modifier les couleurs, les polices et même de désactiver des parties de l'interface utilisateur comme la barre de recherche.
Par exemple, pour désactiver la barre de recherche :
redocly build-docs openapi.yaml --theme.openapi.disableSearch
Vous pouvez trouver toutes les options de thème disponibles dans la documentation officielle de Redocly.
Pour encore plus de contrôle, vous pouvez fournir votre propre modèle Handlebars pour rendre la documentation. C'est une fonctionnalité avancée qui permet une personnalisation complète de la sortie HTML.
Section 2.4 : Obtention de statistiques d'API (stats
)
La commande stats
fournit des métriques utiles sur votre définition d'API, telles que le nombre de chemins, d'opérations, de schémas, et plus encore.
Comment obtenir des statistiques
Pour obtenir des statistiques pour votre API, exécutez simplement :
redocly stats openapi.yaml
La sortie par défaut est au format 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
Différents formats
Comme la commande lint
, stats
prend en charge différents formats de sortie avec l'option --format
. Les formats json
et markdown
sont particulièrement utiles.
-format=json
:
redocly stats openapi.yaml --format=json
C'est excellent pour alimenter les statistiques dans d'autres outils ou tableaux de bord.
-format=markdown
:
redocly stats openapi.yaml --format=markdown
Cela génère une table Markdown, parfaite pour les rapports ou pour une utilisation dans les résumés GitHub Actions, comme nous le verrons dans le chapitre suivant.
Chapitre 3 : Sujets avancés
Dans ce chapitre, nous allons explorer certaines des fonctionnalités plus avancées de Redocly CLI, y compris le puissant fichier de configuration et l'intégration avec les pipelines CI/CD.
Fichier de configuration (redocly.yaml
)
Bien que vous puissiez utiliser Redocly CLI entièrement depuis la ligne de commande, un fichier de configuration redocly.yaml
vous permet de stocker votre configuration en un seul endroit, rendant vos commandes plus courtes et votre configuration réutilisable.
Créons un fichier redocly.yaml
à la racine de notre projet :
# 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
Structure du fichier de configuration
apis
: Cette section vous permet de définir des alias pour vos définitions d'API. Dans l'exemple ci-dessus, nous avons créé un aliasmain
pour notre fichieropenapi.yaml
.lint
: Cette section contient la configuration de la commandelint
. Vous pouvez spécifier les ensembles de règles à étendre et personnaliser les règles individuelles.- Autres sections : Vous pouvez également configurer d'autres parties de Redocly, comme les décorateurs pour transformer votre API.
Utilisation des alias d'API
Avec la section apis
configurée, vous pouvez maintenant utiliser l'alias main
au lieu du chemin du fichier dans vos commandes :
redocly lint main
redocly stats main
redocly build-docs main
C'est particulièrement utile lorsque vous avez plusieurs API dans votre projet. Si vous exécutez redocly lint
sans aucun argument, il linera toutes les API définies dans la section apis
.
Intégration Continue (CI)
L'intégration de Redocly CLI dans votre pipeline CI/CD est un excellent moyen d'automatiser les contrôles de qualité de l'API. Voici un exemple de comment l'utiliser avec GitHub Actions.
Créez un fichier nommé .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
Ce flux de travail GitHub Actions effectue les opérations suivantes :
- Il se déclenche à chaque push et pull request vers la branche
main
. - Il récupère votre code.
- Il installe Node.js et Redocly CLI.
- Il exécute la commande
lint
avec le formatgithub-actions
. Cela annotera automatiquement tous les problèmes directement dans vos pull requests. - Il exécute la commande
stats
avec le formatmarkdown
et ajoute la sortie au résumé du job, vous donnant un beau rapport à chaque exécution.
C'est un moyen puissant de garantir que vos définitions d'API sont toujours en bon état.
Chapitre 4 : Exemple pratique : Un flux de travail complet
Dans ce dernier chapitre, nous allons rassembler tout ce que nous avons appris et parcourir un flux de travail complet et pratique. Nous allons :
- Créer une structure de projet avec une définition d'API multi-fichiers.
- Créer un fichier de configuration
redocly.yaml
. - Linter la définition d'API en utilisant notre configuration personnalisée.
- Regrouper l'API en un seul fichier.
- Générer de la documentation d'API.
1. Configuration du projet
Créons un nouveau répertoire pour notre projet et configurons la structure des fichiers.
mkdir redocly-petstore
cd redocly-petstore
mkdir -p openapi/components/schemas openapi/paths
Maintenant, créons les fichiers API divisés.
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
(notre point d'entrée 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. Créer redocly.yaml
Maintenant, créons notre fichier de configuration à la racine du répertoire 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
Dans cette configuration, nous avons défini un alias petstore@v1
pour notre API et ajouté quelques règles de linting personnalisées.
3. Linter l'API
Maintenant, linterons notre API en utilisant notre nouvelle configuration.
redocly lint petstore@v1
Vous verrez des erreurs et des avertissements car notre API ne se conforme pas encore à toutes nos nouvelles règles. Par exemple, nous n'avons pas de tags avec des descriptions. Cela démontre comment vous pouvez appliquer votre propre guide de style d'API.
4. Regrouper l'API
Ensuite, regroupons notre API multi-fichiers en un seul fichier distribuable.
redocly bundle petstore@v1 -o dist/petstore.yaml
Cela créera un répertoire dist
avec un fichier petstore.yaml
à l'intérieur, contenant la définition d'API entièrement résolue.
5. Générer de la documentation
Enfin, générons notre documentation d'API.
redocly build-docs petstore@v1 -o dist/petstore-docs.html
Cela créera dist/petstore-docs.html
. Ouvrez ce fichier dans votre navigateur pour voir votre magnifique documentation d'API interactive.
Et voilà ! Un flux de travail complet, d'une définition d'API structurée et multi-fichiers à un fichier regroupé et une documentation professionnelle, le tout géré avec Redocly CLI.
Conclusion
Dans ce tutoriel, nous avons exploré en profondeur Redocly CLI. Nous avons commencé par les bases de l'installation et des commandes principales, puis nous sommes passés à des sujets avancés comme la configuration et l'intégration CI, et enfin nous avons parcouru un flux de travail complet et pratique.
Vous devriez maintenant avoir une solide compréhension de la façon d'utiliser Redocly CLI pour :
- Linter vos définitions d'API pour garantir la qualité et la cohérence.
- Gérer vos fichiers API avec
bundle
etsplit
. - Générer une documentation d'API magnifique et interactive avec
build-docs
. - Analyser vos API avec
stats
. - Automatiser tout cela dans un pipeline CI/CD.
Redocly CLI est un outil polyvalent et puissant qui peut améliorer considérablement votre flux de travail de développement d'API. Je vous encourage à explorer davantage ses fonctionnalités et à l'intégrer dans vos projets.
Ressources supplémentaires
- Documentation officielle de Redocly CLI : https://redocly.com/docs/cli/
- Dépôt GitHub de Redocly : https://github.com/Redocly/redocly-cli
- Spécification OpenAPI : https://spec.openapis.org/oas/v3.1.0
Merci d'avoir suivi ce tutoriel. Bon développement d'API !
Vous voulez une plateforme intégrée et tout-en-un pour que votre équipe de développeurs travaille ensemble avec une productivité maximale ?
Apidog répond à toutes vos demandes et replaces Postman at a much more affordable price!