Arquitetura de plug-in
Um plug-in é uma classe .NET registrada com o Proxy de Desenvolvimento que apresenta um comportamento específico do Proxy de Desenvolvimento. Um plug-in pode oferecer diretrizes 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. O Proxy de Desenvolvimento tem três tipos de plug-ins:
- interceptando plug-ins que interceptam solicitações e respostas e podem analisá-los e modificá-los
- plug-ins de relatórios que são executados em solicitações registradas pelo Proxy de Desenvolvimento
- repórteres que geram relatórios com base nos dados coletados por plug-ins de relatórios
Você registra plug-ins no arquivo devproxyrc.json
. O arquivo contém uma lista de plug-ins para carregar e sua configuração.
O Proxy de Desenvolvimento vem com uma coleção de plug-ins e você pode criar plug-ins personalizados para estender a funcionalidade do Proxy de Desenvolvimento para atender às suas necessidades.
Quando o Proxy de Desenvolvimento é iniciado, ele carrega plug-ins habilitados em seu arquivo de configuração. Dependendo de quais plug-ins você habilitar, o Proxy de Desenvolvimento pode fornecer diretrizes, simular o comportamento da API ou analisar solicitações de API. As seções a seguir explicam como funcionam os diferentes tipos de plug-ins.
Interceptando plug-ins
Quando o Proxy de Desenvolvimento intercepta uma solicitação correspondente a uma das URLs na matriz urlsToWatch
, ele invoca cada plug-in de interceptação na ordem em que estão listados no arquivo de configuração. Cada plug-in de interceptação herda da classe BaseProxyPlugin
e pode assinar os seguintes eventos:
-
BeforeRequest
- gerado quando o Proxy de Desenvolvimento intercepta uma solicitação -
BeforeResponse
- gerado após o Proxy de Desenvolvimento receber uma resposta do servidor -
AfterResponse
- gerado após o Proxy de Desenvolvimento enviar a resposta ao 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 gerar mensagens de orientação. Para ver o que é possível, consulte o código de plug-ins fornecido com o Proxy de Desenvolvimento.
Plug-ins de relatórios
O Proxy de Desenvolvimento permite que você registre solicitações e respostas da 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ê para de gravar, o Proxy de Desenvolvimento 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ório 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ório. Os plug-ins de relatórios armazenam os relatórios chamando o método StoreReport
.
Importante
Os plug-ins de relatório geram objetos de relatório, que o Proxy de Desenvolvimento 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 Proxy de Desenvolvimento usa repórteres para converter objetos de relatório gerados pelo relatório de plug-ins em relatórios legíveis pelo usuário. Por exemplo, o MarkdownReporter converte um objeto de relatório em um arquivo Markdown. Repórteres são plug-ins especiais que herdam da classe BaseReporter
. Eles implementam o método GetReport
, que usa 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 em 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 por 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ê habilitá-los antes de relatar plug-ins, os repórteres não terão nenhum dado para relatar.