Aller au contenu principal
FONCTIONNALITÉ 02 / 11

Environnements et variables, sans client séparé.

URL de base, variables et en-têtes par défaut par environnement, bascule depuis le bandeau, le tout dans le navigateur du lecteur. La raison de garder un client API à côté de la doc — supprimée.

demo.apiglow.dev/#/pet/addPet · petstore.yaml
Le gestionnaire d’environnements : choix de couleur, variables d’authentification masquées comme sensibles, création en un clic depuis les serveurs déclarés dans le schéma. Le gestionnaire d’environnements : choix de couleur, variables d’authentification masquées comme sensibles, création en un clic depuis les serveurs déclarés dans le schéma.

CAPTURE RÉELLE, AFFICHÉE À 1:1

Un environnement par contexte, couleur comprise.

Un environnement porte un nom, une URL de base, des variables et des en-têtes ajoutés à chaque requête. Chacun a sa couleur — la production en rouge se voit avant l’envoi, pas après. La config peut pré-remplir des environnements pour que les lecteurs arrivent équipés ; en installation multi-spec, chaque spec garde son propre jeu, totalement isolé.
L’éditeur d’environnement : champ nom, champ URL de base et la rangée de pastilles de couleur. L’éditeur d’environnement : champ nom, champ URL de base et la rangée de pastilles de couleur.
[01]UN NOM, UNE URL DE BASE, UNE COULEUR
Environnements pré-remplis depuis la config
{
  "environments": [
    {
      "name": "Sandbox",
      "baseUrl": "https://sandbox.example.com/v1",
      "variables": {
        "auth.bearerAuth": { "value": "", "sensitive": true },
        "accountId": { "value": "acc_123", "sensitive": false }
      },
      "defaultHeaders": { "X-Client": "api-docs" }
    }
  ]
}

Une variable manquante bloque l’envoi.

{{var}} s’interpole dans l’URL, les en-têtes et le corps. Si une variable n’a pas de valeur dans l’environnement actif, l’envoi est bloqué avec un signal visible — le littéral {{var}} n’est jamais envoyé à votre API, pas une fois. Taper {{ autocomplète depuis les variables disponibles, provenance affichée.

L’auth suit vos securitySchemes.

Chaque scheme déclaré par le schéma se remplit : bearer, basic, apiKey en en-tête, query ou cookie, OAuth2, OpenID Connect. La convention tient en une ligne — le scheme X lit la variable auth.X — donc les credentials vivent là où vivent les variables, par environnement.

OAuth2 tourne entièrement dans le navigateur, sans backend : Authorization Code avec PKCE (redirection pleine page, échange du code dans le navigateur) et client credentials. La config porte au plus un clientId — jamais un secret.

La liste des variables : auth.petstore_auth, auth.bearerAuth, auth.api_key et le couple basic-auth, masqués et marqués sensibles. La liste des variables : auth.petstore_auth, auth.bearerAuth, auth.api_key et le couple basic-auth, masqués et marqués sensibles.
[03]SCHÉMA X, VARIABLE auth.X

La session du lecteur devient l’identifiant.

Une doc derrière un SSO ? La page qui embarque ApiGlow peut enregistrer un petit provider, et l’app lui demande des jetons à l’exécution — le lecteur arrive sur une documentation déjà authentifiée, rien à coller. Les valeurs fournies par l’hôte ne remplissent que ce que l’environnement laisse vide (une valeur tapée gagne toujours), vivent en mémoire seulement — jamais stockées, toujours caviardées des exports — et un 401 déclenche exactement un rafraîchissement-rejeu, avec une note visible. Le guide d’authentification porte le contrat complet.
La page hôte tend un provider à l’app
apidoc.registerCredentialsProvider(async () => {
  const r = await fetch("/api/docs-token", { credentials: "include" })
  return r.ok ? { bearerAuth: (await r.json()).access_token } : null
})

Une seule URL prépare un coéquipier.

Un environnement voyage sous forme de lien. Partagez celui que vous avez — les variables cochées emportent leur valeur, les autres voyagent par leur nom avec une valeur vide, le squelette que le destinataire remplit — ou partez de zéro : un formulaire qui produit le lien sans jamais créer l’environnement sur votre machine, et qui n’écrit rien, nulle part. Le destinataire voit un tableau de relecture avant qu’une seule clé ne soit écrite (créée / mise à jour / conservée, valeurs sensibles cachées), et le lien quitte aussitôt la barre d’adresse. Un format assez simple, aussi, pour que des liens d’accueil sortent d’un job de CI.
Un environnement, en un lien
https://docs.example.com/#/?setup=eyJ2IjoxLCJlbnYiOnsibmFtZSI6IlN0YWdpbmci…

Le mode verrouillé pour les déploiements encadrés.

environmentsLocked: true fige les environnements déclarés : ni création, ni édition, ni suppression — seul le sélecteur reste. Les équipes plateforme publient leur doc interne avec les bons bacs à sable pré-câblés et rien à mal configurer.

Tout ce qu’un environnement porte alimente aussi la console d’essai, et ses valeurs sensibles sont caviardées par défaut dans chaque export et chaque entrée d’historique.

Local veut dire non chiffré.

Les variables sensibles sont masquées à l’affichage et caviardées des exports — mais elles sont stockées en clair dans le navigateur du lecteur, délibérément, et l’interface le dit. Évitez les secrets de production sur une machine partagée.