Try it out
Exécute une vraie requête depuis le navigateur, directement depuis la page d'un endpoint, avec support de l'auth et un proxy same-origin pour éviter CORS.
Usage
Le panneau de requête de chaque endpoint a un sélecteur de mode Code / Try it out à côté des onglets de langage. Try it out est un formulaire éditable (URL de base, paramètres de chemin/requête/en-tête, corps de requête) qui exécute une vraie requête via executeRequest() et affiche le résultat dans un onglet Live à côté des exemples de réponses déclarés (mis en forme quand le corps est du JSON, avec un message clair au lieu d'une erreur brute en cas d'échec réseau/CORS). L'URL de base prend par défaut la première entrée du tableau servers[] du document OpenAPI quand il est présent, et reste toujours librement modifiable.
Authentification
Les endpoints avec une exigence security ont un formulaire d'auth intégré, une entrée par schéma déclaré :
- apiKey : va dans un en-tête ou un paramètre de requête, selon son emplacement déclaré.
- http bearer / OAuth2 / OpenID Connect : acceptent tous un token que tu colles directement ; aucun flux OAuth n'est exécuté.
- http basic : attend user:pass.
Les identifiants sont globaux (partagés entre tous les endpoints utilisant ce schéma, comme le serait un vrai token de dev) et persistent dans localStorage pour survivre à un rechargement.
Quand une réponse Live réussie contient un champ ayant la forme d'un token (par ex. le access_token d'un endpoint de login, y compris imbriqué dans une enveloppe comme data.access_token), un bouton « Utiliser comme token … » te permet de le réutiliser comme identifiant pour le reste de la session, sans copier-coller manuel.
Proxy same-origin
Par défaut, Try it out est un fetch() direct du navigateur vers l'API cible, soumis à la politique CORS propre de cette API. Quand le DocfyUiModule.setup() de nestjs-docfy (voir la référence API) est configuré avec un document OpenAPI, docfy-ui détecte la variable globale injectée window.__DOCFY_PROXY_PATH__ et route la requête via un proxy côté serveur same-origin à la place, donc CORS ne s'applique jamais.
La liste blanche du proxy est construite uniquement à partir des URLs absolues du tableau servers[] du document. Il n'y a pas de repli implicite « même origine que cette requête », puisque ça dépendrait d'en-têtes contrôlés par le client. Une requête pour une origine non autorisée, ou tout autre échec au niveau du proxy lui-même, revient avec un en-tête de réponse X-Docfy-Proxy-Error, pour que docfy-ui puisse distinguer un échec de proxy d'une vraie réponse de ton API.