Architecture du plug-in
Un plug-in est une classe .NET inscrite auprès du proxy de développement qui introduit un comportement spécifique du proxy de développement. Un plug-in peut fournir des conseils en temps réel sur l’utilisation de l’API, simuler le comportement de l’API, analyser plusieurs demandes d’API ou produire un rapport. Le proxy de développement a trois types de plug-ins :
- les plug-ins interceptant qui interceptent les demandes et les réponses et peuvent les analyser et les modifier
- les plug-ins de création de rapports qui s’exécutent sur des requêtes enregistrées par le proxy de développement
- reporters qui génèrent des rapports basés sur les données collectées par les plug-ins de création de rapports
Vous inscrivez des plug-ins dans le fichier devproxyrc.json
. Le fichier contient une liste de plug-ins à charger et leur configuration.
Le proxy de développement est fourni avec une collection de plug-ins et vous pouvez créer des plug-ins personnalisés pour étendre les fonctionnalités du proxy de développement en fonction de vos besoins.
Au démarrage du proxy de développement, il charge les plug-ins activés dans son fichier de configuration. Selon les plug-ins que vous activez, le proxy de développement peut fournir des conseils, simuler le comportement de l’API ou analyser les demandes d’API. Les sections suivantes expliquent comment fonctionnent les différents types de plug-ins.
Interception de plug-ins
Lorsque le proxy de développement intercepte une requête correspondant à l’une des URL du tableau urlsToWatch
, il appelle chaque plug-in d’interception dans l’ordre dans lequel ils sont répertoriés dans le fichier de configuration. Chaque plug-in d’interception hérite de la classe BaseProxyPlugin
et peut s’abonner aux événements suivants :
-
BeforeRequest
- déclenché lorsque le proxy de développement intercepte une requête -
BeforeResponse
- déclenché après que le proxy de développement reçoit une réponse du serveur -
AfterResponse
- déclenché après que le proxy de développement envoie la réponse au client
Pour chacun de ces événements, les plug-ins peuvent définir un gestionnaire d’événements. Dans le gestionnaire, le plug-in peut analyser la demande et la réponse, et la modifier si nécessaire. Il peut également générer des messages d’aide. Pour voir ce qui est possible, consultez le code des plug-ins fournis avec dev Proxy.
Plug-ins de création de rapports
Le proxy de développement vous permet d’enregistrer les demandes et réponses de l’API. Vous utilisez généralement l’enregistrement pour signaler l’utilisation de l’API ou analyser plusieurs demandes d’API. Les plug-ins de création de rapports héritent de la classe BaseReportingPlugin
et inscrivent un gestionnaire d’événements auprès de l’événement AfterRecordingStop
.
Lorsque vous arrêtez l’enregistrement, le proxy de développement déclenche l’événement AfterRecordingStop
, en passant la liste des demandes et réponses enregistrées en tant qu’argument aux gestionnaires d’événements inscrits. Les plug-ins de création de rapports peuvent ensuite analyser les données enregistrées et générer un objet de rapport. Un objet de rapport est un objet arbitraire défini par le plug-in de création de rapports. Les plug-ins de création de rapports stockent les rapports en appelant la méthode StoreReport
.
Important
Les plug-ins de création de rapports génèrent des objets de rapport, que le proxy de développement stocke en mémoire. Pour convertir ces objets de rapport en rapports lisibles par l’utilisateur, vous devez activer un ou plusieurs reporters dans le fichier de configuration du proxy de développement.
Journalistes
Le proxy de développement utilise reporters pour convertir les objets de rapport générés par des plug-ins de création de rapports en rapports lisibles par l’utilisateur. Par exemple, le MarkdownReporter convertit un objet de rapport en fichier Markdown. Les reporters sont des plug-ins spéciaux qui héritent de la classe BaseReporter
. Ils implémentent la méthode GetReport
, qui prend comme argument un rapport créé par un plug-in de création de rapports et le convertit en chaîne. Cette chaîne est ensuite enregistrée sur le disque en suivant le modèle PluginName_ReporterName.ReporterExtension
, par exemple : ApiCenterOnboardingPlugin_MarkdownReporter.md
.
Important
Étant donné que les reporters dépendent des objets de rapport générés par les plug-ins de création de rapports, vous devez activer les plug-ins de création de rapports dans le fichier de configuration du proxy de développement après les plug-ins de création de rapports. Si vous les activez avant de signaler des plug-ins, les journalistes n’ont pas de données à signaler.