Leer en inglés

Compartir a través de


Arquitectura del complemento

Un complemento es una clase de .NET registrada con el proxy de desarrollo que presenta un comportamiento específico del proxy de desarrollo. Un complemento puede ofrecer instrucciones en tiempo real sobre el uso de la API, simular el comportamiento de la API, analizar varias solicitudes de API o generar un informe. El proxy de desarrollo tiene tres tipos de complementos:

  • interceptar complementos que interceptan solicitudes y respuestas, y pueden analizarlas y modificarlas
  • complementos de informes que se ejecutan en solicitudes grabados por proxy de desarrollo
  • los periodistas que generan informes basados en los datos recopilados por complementos de informes

Los complementos se registran en el archivo devproxyrc.json. El archivo contiene una lista de complementos que se van a cargar y su configuración.

Dev Proxy incluye una colección de complementos y puede crear complementos personalizados para ampliar la funcionalidad de Proxy de desarrollo para satisfacer sus necesidades.

Cuando se inicia Dev Proxy, carga complementos habilitados en su archivo de configuración. En función de los complementos que habilite, El proxy de desarrollo puede proporcionar instrucciones, simular el comportamiento de la API o analizar las solicitudes de API. En las secciones siguientes se explica cómo funcionan los distintos tipos de complementos.

Interceptación de complementos

Cuando dev Proxy intercepta una solicitud que coincide con una de las direcciones URL de la matriz urlsToWatch, invoca cada complemento de interceptación en el orden en que aparecen en el archivo de configuración. Cada complemento de interceptación hereda de la clase BaseProxyPlugin y puede suscribirse a los siguientes eventos:

  • BeforeRequest: se genera cuando el proxy de desarrollo intercepta una solicitud
  • BeforeResponse: se genera después de que el proxy de desarrollo reciba una respuesta del servidor.
  • AfterResponse: se genera después de que el proxy de desarrollo envíe la respuesta al cliente.

Para cada uno de estos eventos, los complementos pueden definir un controlador de eventos. En el controlador, el complemento puede analizar la solicitud y la respuesta, y modificarla si es necesario. También puede generar mensajes de guía. Para ver lo que es posible, consulte el código de de complementos proporcionados con el proxy de desarrollo.

Complementos de informes

El proxy de desarrollo permite registrar solicitudes y respuestas de API. Normalmente, se usa la grabación para informar sobre el uso de la API o analizar varias solicitudes de API. Los complementos de informes heredan de la clase BaseReportingPlugin y registran un controlador de eventos con el evento AfterRecordingStop.

Al detener la grabación, Dev Proxy genera el evento AfterRecordingStop, pasando la lista de solicitudes y respuestas grabadas como argumento a los controladores de eventos registrados. Los complementos de informes pueden analizar los datos registrados y generar un objeto de informe. Un objeto de informe es un objeto arbitrario definido por el complemento de informes. Los complementos de informes almacenan los informes llamando al método StoreReport.

Importante

Los complementos de informes generan objetos de informe, que el proxy de desarrollo almacena en memoria. Para convertir estos objetos de informe en informes legibles por el usuario, debe habilitar uno o varios periodistas en el archivo de configuración del proxy de desarrollo.

Reporteros

El proxy de desarrollo usa periodistas para convertir objetos de informe generados por complementos de informes en informes legibles por el usuario. Por ejemplo, el MarkdownReporter convierte un objeto de informe en un archivo Markdown. Los periodistas son complementos especiales que heredan de la clase BaseReporter. Implementan el método GetReport, que toma como argumento un informe creado por un complemento de informes y lo convierte en una cadena. A continuación, esta cadena se guarda en el disco siguiendo el patrón PluginName_ReporterName.ReporterExtension, por ejemplo: ApiCenterOnboardingPlugin_MarkdownReporter.md.

Importante

Dado que los periodistas dependen de los objetos de informe generados por los complementos de informes, debe habilitar los complementos de informes en el archivo de configuración del proxy de desarrollo después de los complementos de informes. Si los habilita antes de notificar complementos, los periodistas no tendrán ningún dato sobre el que informar.