Arquitetura de plug-ins
Um plug-in é uma classe .NET registrada com Dev Proxy que introduz um comportamento específico de Dev Proxy. Um plug-in pode oferecer orientação em tempo real sobre o uso da API, simular o comportamento da API, analisar várias solicitações de API ou produzir um relatório. Dev Proxy tem três tipos de plugins:
- intercetar plugins que intercetam solicitações e respostas e podem analisá-las e modificá-las
- plugins de relatórios que são executados em solicitações gravadas pelo Dev Proxy
- repórteres que geram relatórios com base nos dados coletados por plugins de relatórios
Você registra plugins no arquivo devproxyrc.json
. O arquivo contém uma lista de plugins para carregar e sua configuração.
O Dev Proxy vem com uma coleção de plug-ins e você pode criar plugins personalizados estender a funcionalidade do Dev Proxy para atender às suas necessidades.
Quando o Dev Proxy é iniciado, ele carrega plug-ins habilitados em seu arquivo de configuração. Dependendo de quais plug-ins você habilitar, o Dev Proxy pode fornecer orientação, simular o comportamento da API ou analisar solicitações de API. As seções a seguir explicam como os diferentes tipos de plugins funcionam.
Intercetação de plugins
Quando o Dev Proxy interceta uma solicitação correspondente a uma das URLs na matriz urlsToWatch
, ele invoca cada plug-in de intercetação na ordem em que estão listados no arquivo de configuração. Cada plug-in de intercetação herda da classe BaseProxyPlugin
e pode se inscrever nos seguintes eventos:
-
BeforeRequest
- gerado quando o Dev Proxy interceta uma solicitação -
BeforeResponse
- gerado após o Dev Proxy receber uma resposta do servidor -
AfterResponse
- gerado após o Dev Proxy enviar a resposta para o cliente
Para cada um desses eventos, os plug-ins podem definir um manipulador de eventos. No manipulador, o plug-in pode analisar a solicitação e a resposta, e modificá-la, se necessário. Ele também pode emitir mensagens de orientação. Para ver o que é possível, consulte o código de dos plugins fornecidos com o Dev Proxy.
Plugins de relatórios
O Dev Proxy permite que você registre solicitações e respostas de API. Normalmente, você usa a gravação para relatar o uso da API ou analisar várias solicitações de API. Os plug-ins de relatório herdam da classe BaseReportingPlugin
e registram um manipulador de eventos com o evento AfterRecordingStop
.
Quando você interrompe a gravação, o Dev Proxy gera o evento AfterRecordingStop
, passando a lista de solicitações e respostas gravadas como um argumento para os manipuladores de eventos registrados. Os plug-ins de relatórios podem analisar os dados gravados e gerar um objeto de relatório. Um objeto de relatório é um objeto arbitrário definido pelo plug-in de relatórios. Os plug-ins de relatórios armazenam os relatórios chamando o método StoreReport
.
Importante
Os plug-ins de relatórios geram objetos de relatório, que o Dev Proxy armazena na memória. Para converter esses objetos de relatório em relatórios legíveis pelo usuário, você deve habilitar um ou mais repórteres no arquivo de configuração do Proxy de Desenvolvimento.
Repórteres
O Dev Proxy usa de repórteres para converter objetos de relatório gerados por plug-ins de relatórios em relatórios legíveis pelo usuário. Por exemplo, o MarkdownReporter converte um objeto de relatório em um arquivo Markdown. Os repórteres são plugins especiais que herdam da classe BaseReporter
. Eles implementam o método GetReport
, que toma como argumento um relatório criado por um plug-in de relatório e o converte em uma cadeia de caracteres. Essa cadeia de caracteres é salva no disco seguindo o padrão PluginName_ReporterName.ReporterExtension
, por exemplo: ApiCenterOnboardingPlugin_MarkdownReporter.md
.
Importante
Como os repórteres dependem dos objetos de relatório gerados pelos plug-ins de relatório, você deve habilitar os plug-ins de relatório no arquivo de configuração do Proxy de Desenvolvimento após os plug-ins de relatório. Se você ativá-los antes de relatar plugins, os repórteres não terão dados para relatar.