Localizar solicitações de API de não produção com o Proxy de Desenvolvimento

Ao compilar seu aplicativo, você pode estar usando APIs que ainda estão em versão prévia. Você costuma usar APIs em versão prévia quando está integrando novos recursos que estão sendo compilados junto com seu aplicativo. Antes de lançar seu aplicativo para a produção, você deve se certificar de que está usando APIs no nível de produção. Quando você usa APIs estáveis, que têm suporte e são cobertas por Contratos de Nível de Serviço (SLAs), seu aplicativo fica mais consistente.

Uma maneira de verificar se o seu aplicativo está usando APIs no nível de produção é usar o Proxy de Desenvolvimento. O Dev Proxy é um simulador de API que intercepta e analisa solicitações de API dos aplicativos. Um dos recursos do Proxy de Desenvolvimento é verificar se as solicitações de API interceptadas pertencem a uma API que não seja de produção. O Proxy de Desenvolvimento também recomenda a versão de produção da API que você está usando.

Captura de tela de um console mostrando o Proxy de Desenvolvimento verificando se as solicitações de API gravadas correspondem às versões de APIs de produção registradas no Centro de API do Azure.

Antes de começar

Para detectar as solicitações de APIs que não sejam de produção, você precisa ter uma instância do Centro de API do Azure com informações sobre as APIs que você usa na sua organização. Se você ainda não criou um, consulte Início Rápido: criar seu centro de API. Além disso, você precisa instalar o Dev Proxy.

Registre as APIs na sua instância do Centro de API

Registre as APIs que você usa na sua organização. Para cada API, defina as versões que você usa e especifique seu estágio no ciclo de vida.

Captura de tela do Centro de API do Azure mostrando uma API com versões diferentes.

O ApiCenterProductionVersionPlugin do Proxy de Desenvolvimento usa essas informações para verificar se as APIs que seu aplicativo está usando são APIs de produção ou não.

Copiar informações do Centro de API

A partir da página Visão Geral da instância do Centro de API do Azure, copie o nome da instância do Centro de API, o nome do grupo de recursos e a ID da assinatura. Você precisa dessas informações para configurar o ApiCenterProductionVersionPlugin de forma que possa se conectar à sua instância do Centro de API do Azure.

Captura de tela da página de visão geral do Centro de API do Azure com várias propriedades realçadas.

Configurar o Proxy de Desenvolvimento

Para verificar se o seu aplicativo está usando APIs no nível de produção, você precisa habilitar o ApiCenterProductionVersionPlugin no arquivo de configuração do Proxy de Desenvolvimento. Para criar um relatório das APIs que seu aplicativo usa, adicione um gerador de relatórios.

Habilitar o ApiCenterProductionVersionPlugin

No arquivo devproxyrc.json, adicione a seguinte configuração:

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.19.0/rc.schema.json",
  "plugins": [
    {
      "name": "ApiCenterProductionVersionPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "apiCenterProductionVersionPlugin"
    }
  ],
  "urlsToWatch": [
    "https://jsonplaceholder.typicode.com/*"
  ],
  "apiCenterProductionVersionPlugin": {
    "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "resourceGroupName": "demo",
    "serviceName": "contoso-api-center",
    "workspaceName": "default"
  }
}

Nas propriedades subscriptionId, resourceGroupName e serviceName, forneça as informações sobre sua instância do Centro de API do Azure.

Na propriedade urlsToWatch, especifique as URLs que o seu aplicativo usa.

Dica

Use a extensão do Visual Studio Code do Kit de Ferramentas do Proxy de Desenvolvimento para gerenciar a configuração do Proxy de Desenvolvimento com facilidade.

Adicionar um repórter

O ApiCenterProductionVersionPlugin produz um relatório de APIs que o seu aplicativo está usando. Para ver esse relatório, adicione um gerador de relatórios ao arquivo de configuração do Dev Proxy. O Dev Proxy oferece vários geradores de relatórios. Nesse exemplo, você usa o gerador de relatórios em texto sem formatação.

Atualize seu arquivo devproxyrc.json com uma referência aos relatórios em texto sem formatação:

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.19.0/rc.schema.json",
  "plugins": [
    {
      "name": "ApiCenterProductionVersionPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "apiCenterProductionVersionPlugin"
    },
    {
      "name": "PlainTextReporter",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://jsonplaceholder.typicode.com/*"
  ],
  "apiCenterProductionVersionPlugin": {
    "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "resourceGroupName": "demo",
    "serviceName": "contoso-api-center",
    "workspaceName": "default"
  }
}

Verifique se o seu aplicativo está usando APIs no nível de produção

Para verificar se o seu aplicativo está usando APIs no nível de produção, você precisa se conectar à sua assinatura do Azure, executar o Proxy de Desenvolvimento e permitir que intercepte solicitações de API do seu aplicativo. Em seguida, o Proxy de Desenvolvimento compara as informações sobre as solicitações de API com as informações do Centro de API do Azure e de relatórios sobre quaisquer APIs que não sejam de produção.

Conecte-se à sua assinatura do Azure

O Proxy de Desenvolvimento usa informações do Centro de API do Azure para determinar se as APIs que seu aplicativo está usando são em nível de produção. Para obter essas informações, o recurso precisa de uma conexão com sua assinatura do Azure. Você pode se conectar à sua assinatura do Azure de várias maneiras.

Executar Proxy de Desenvolvimento

Após se conectar à sua assinatura do Azure, inicie o Dev Proxy. Se você iniciar o Dev Proxy na mesma pasta em que seu arquivo devproxyrc.json está localizado, a configuração será carregada automaticamente. Caso contrário, especifique o caminho para o arquivo de configuração usando a opção --config-file.

Quando é iniciado, o Dev Proxy verifica se consegue se conectar à sua assinatura do Azure. Se a conexão for bem-sucedida, você verá uma mensagem semelhante a:

 info    Plugin ApiCenterProductionVersionPlugin connecting to Azure...
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

Pressione r para iniciar o registro das solicitações de API a partir do seu aplicativo.

Use seu aplicativo

Use seu aplicativo como você faria normalmente. O Dev Proxy intercepta as solicitações de API e armazena as informações sobre elas na memória. Na linha de comando em que o Dev Proxy é executado, você deverá ver as informações sobre as solicitações de API que seu aplicativo faz.

 info    Plugin ApiCenterProductionVersionPlugin connecting to Azure...
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

◉ Recording... 

 req   ╭ GET https://jsonplaceholder.typicode.com/posts?api-version=v1.0
 api   ╰ Passed through

 req   ╭ GET https://jsonplaceholder.typicode.com/users?api-version=beta
 api   ╰ Passed through

Verificar as versões da API

Interromper o registro pressionando s. O Dev Proxy se conecta à instância do Centro de API e compara as informações sobre as solicitações com as informações do Centro de API.

 info    Plugin ApiCenterProductionVersionPlugin connecting to Azure...
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

◉ Recording... 

 req   ╭ GET https://jsonplaceholder.typicode.com/posts?api-version=v1.0
 api   ╰ Passed through

 req   ╭ GET https://jsonplaceholder.typicode.com/users?api-version=beta
 api   ╰ Passed through
○ Stopped recording
 info    Checking if recorded API requests use production APIs as defined in API Center...
 info    Loading APIs from API Center...
 info    Analyzing recorded requests...
 warn    Request GET https://jsonplaceholder.typicode.com/users?api-version=beta uses API version beta which is defined as Preview. Upgrade to a production version of the API. Recommended versions: v1.0
 info    DONE

Quando termina sua análise, o Dev Proxy cria um relatório em um arquivo chamado ApiCenterProductionVersionPlugin_PlainTextReporter.txt com o seguinte conteúdo:

Non-production APIs:

  GET https://jsonplaceholder.typicode.com/users?api-version=beta
  
Production APIs:

  GET https://jsonplaceholder.typicode.com/posts?api-version=v1.0

Resumo

Usando o Proxy de Desenvolvimento e seu ApiCenterProductionVersionPlugin, você poderá verificar se o seu aplicativo está usando APIs no nível de produção. O plugin compara as informações sobre solicitações de API do seu aplicativo às informações do Centro de API do Azure e de relatórios sobre solicitações de APIs que não sejam de produção. Além disso, recomenda a versão de produção das APIs que você está usando. Verificar quais APIs seu aplicativo está usando ajuda você a garantir que seu aplicativo esteja usando APIs estáveis, que têm suporte e são cobertas por SLAs, o que torna seu aplicativo mais consistente. Você pode executar essa verificação manualmente ou integrá-la ao pipeline de CI/CD para se certificar de que seu aplicativo esteja usando APIs no nível de produção antes de liberá-lo para a produção.