Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Ao integrar seu aplicativo aos serviços de nuvem, um dos desafios que você pode enfrentar é entender como o serviço de nuvem interage com as APIs que ele usa. Poder inspecionar solicitações de API é especialmente importante ao solucionar problemas ou ao tentar entender como o serviço de nuvem funciona. Normalmente, é desafiador, porque você não tem acesso ao runtime do serviço de nuvem e também pode não ter acesso às ferramentas de monitoramento da API de nuvem. Ao usar o Proxy de Desenvolvimento e o túnel do desenvolvedor, você poderá inspecionar as solicitações de API que os serviços de nuvem emitem para APIs de nuvem.
Importante
Antes de continuar, instale os túneis do desenvolvedor e configure a ferramenta para uso.
Como os serviços de nuvem chamam APIs de nuvem
Quando você integra seu aplicativo aos serviços de nuvem, o serviço de nuvem chama sua API na nuvem. O diagrama a seguir ilustra este cenário:
Para inspecionar solicitações de API que o serviço de nuvem emite, você precisa de acesso às ferramentas de monitoramento para a API de nuvem. Muitas vezes, você não tem acesso a essas ferramentas. É possível contornar essa limitação usando um ambiente de preparo. No entanto, é demorado configurar e manter um ambiente de preparo. Além disso, se você não possui a API de nuvem, talvez não consiga configurar um ambiente de preparo.
Inspecionar solicitações de API usando o Proxy de Desenvolvimento e o túnel do desenvolvedor
Usando o Proxy de Desenvolvimento e o túnel do desenvolvedor, inspecione as solicitações de API que o serviço de nuvem emite para a API de nuvem.
Em vez de chamar a API de nuvem diretamente, configure o serviço de nuvem para chamar o túnel do desenvolvedor executado em seu computador local (1). Você configura o Túnel de Desenvolvimento para usar um cabeçalho de host que o Proxy de Desenvolvimento intercepta. Sempre que o serviço de nuvem chama o túnel do desenvolvedor, ele passa a solicitação para o Proxy de Desenvolvimento que o intercepta (2). Usando o Proxy de Desenvolvimento RewritePlugin, você altera a URL da solicitação interceptada e a encaminha para a API de nuvem (3). A API de nuvem processa a solicitação e retorna uma resposta ao Proxy de Desenvolvimento (4). O Proxy de Desenvolvimento passa a resposta para o túnel do desenvolvedor (5), que o encaminha para o serviço de nuvem (6). Como a solicitação é roteada por meio do computador local, você poderá inspecionar suas informações, incluindo URL, cabeçalhos e corpo, e a resposta da API de nuvem.
Cenário
Digamos que você queira inspecionar solicitações de API que um serviço de nuvem emite para a API JSONPlaceholder de demonstração localizada em https://jsonplaceholder.typicode.com. Ao combinar o Proxy de Desenvolvimento e o túnel do desenvolvedor, você poderá interceptar as solicitações e inspecionar suas informações.
Inspecione as solicitações usando ferramentas de inspeção do túnel do desenvolvedor ou usando o DevToolsPlugin do Proxy de Desenvolvimento. Ambas as ferramentas usam as Ferramentas de Desenvolvimento do Chrome para mostrar informações sobre solicitações e respostas interceptadas. Ao usar as ferramentas de inspeção do túnel do desenvolvedor, você visualiza a URL do túnel do desenvolvedor como a URL de solicitação. Em comparação, ao usar o DevToolsPlugin do Proxy de Desenvolvimento, você visualizará como o Proxy de Desenvolvimento intercepta a solicitação, usando a URL local ou reescrita.
Inspecionar solicitações de API usando o Proxy de Desenvolvimento, túnel do desenvolvedor e ferramentas de inspeção do túnel do desenvolvedor
Configurar o Proxy de Desenvolvimento para interceptar solicitações para
https://jsonplaceholder.typicode.comehttp://jsonplaceholder.typicode.local:{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json", "plugins": [ { "name": "RewritePlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll", "configSection": "rewritePlugin" } ], "urlsToWatch": [ "https://jsonplaceholder.typicode.com/*", "http://jsonplaceholder.typicode.local/*" ], "rewritePlugin": { "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rewriteplugin.schema.json", "rewritesFile": "devproxy-rewrites.json" }, "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }O arquivo de configuração usa o RewritePlugin para reescrever a URL das solicitações interceptadas. Ele também configura o Proxy de Desenvolvimento para interceptar solicitações para as URLs
https://jsonplaceholder.typicode.comehttp://jsonplaceholder.typicode.local.Observação
Embora não seja necessário usar um domínio
.local, é uma boa prática que ajuda a distinguir entre as solicitações reais e interceptadas. Observe também que, para o domínio.local, você usa o protocolo HTTP, em vez de HTTPS. O túnel do desenvolvedor não dá suporte a HTTPS para roteamento de solicitações para cabeçalhos de host personalizados em seu computador local e é por isso que você precisa usar HTTP.Crie um arquivo de reescrita chamado
devproxy-rewrites.jsonque altera a URL das solicitações interceptadas:{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rewriteplugin.rewritesfile.schema.json", "rewrites": [ { "in": { "url": "^http://jsonplaceholder.typicode.local(.*)" }, "out": { "url": "https://jsonplaceholder.typicode.com$1" } } ] }O arquivo de reescrita altera a URL das solicitações interceptadas de
http://jsonplaceholder.typicode.localparahttps://jsonplaceholder.typicode.com.Inicie o Proxy de Desenvolvimento executando na linha de comando
devproxy.Inicie o túnel do desenvolvedor executando na linha de comando
devtunnel host --host-header jsonplaceholder.typicode.local --port-numbers 8000 --allow-anonymous.Ao usar esse comando, você abre um novo túnel do desenvolvedor em seu computador. Você o mapeia para a porta 8000, que é onde o Proxy de Desenvolvimento escuta solicitações de entrada. Você também especifica o cabeçalho do host interceptado pelo Proxy de Desenvolvimento.
Observe a URL do túnel do desenvolvedor que você poderá usar para configurar o serviço de nuvem para chamar seu computador local, por exemplo
https://tunnel_id-8000.euw.devtunnels.ms.Em um navegador da Web, abra a URL de inspeção do túnel de desenvolvimento, por exemplo
https://tunnel_id-8000-inspect.euw.devtunnels.ms.Simule um serviço de nuvem chamando a API de nuvem usando a URL do túnel do desenvolvedor, executando na linha de comando:
curl https://tunnel_id-8000.euw.devtunnels.ms/posts/1.Observação
Observe que o nome do host corresponde à URL do túnel do desenvolvedor em seu computador. O caminho corresponde ao caminho da API que você deseja inspecionar.
Observe como o Proxy de Desenvolvimento intercepta a solicitação e a encaminha para a API de nuvem, eventualmente retornando a resposta ao cliente.
No navegador da Web, observe as informações sobre a solicitação interceptada e a resposta da API de nuvem.
Observação
A URL de solicitação registrada é a URL do túnel do desenvolvedor. O cabeçalho do host gravado é o cabeçalho do host interceptado pelo Proxy de Desenvolvimento.
Feche o túnel de desenvolvimento e interrompa o proxy de desenvolvimento pressionando Ctrl+C em suas respectivas sessões na linha de comando.
Inspecionar solicitações de API usando o Proxy de Desenvolvimento e o DevToolsPlugin
Outra maneira de inspecionar as solicitações de API que o serviço de nuvem emite é usando o DevToolsPlugin do Proxy de Desenvolvimento. A diferença entre usar o DevToolsPlugin e as ferramentas de inspeção do túnel do desenvolvedor é que o DevToolsPlugin mostra como o Proxy de Desenvolvimento intercepta a solicitação, usando a URL local ou reescrita.
Configurar o Proxy de Desenvolvimento para usar o DevToolsPlugin para inspecionar solicitações de API usando a URL interceptada
Primeiro, vamos configurar o Proxy de Desenvolvimento para inspecionar solicitações de API de nuvem. Vamos configurar o DevToolsPlugin para mostrar as informações sobre a URL antes que o Proxy de Desenvolvimento a reescreva.
Atualize o arquivo de configuração do Proxy de Desenvolvimento para usar o DevToolsPlugin:
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json", "plugins": [ { "name": "DevToolsPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll" }, { "name": "RewritePlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll", "configSection": "rewritePlugin" } ], "urlsToWatch": [ "https://jsonplaceholder.typicode.com/*", "http://jsonplaceholder.typicode.local/*" ], "rewritePlugin": { "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rewriteplugin.schema.json", "rewritesFile": "devproxy-rewrites.json" }, "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }Observação
Adicionamos o DevToolsPlugin antes do RewritePlugin. Ao adicionar o DevToolsPlugin primeiro, ele mostra as informações sobre a solicitação interceptada antes de ser reescrita.
Inicie o Proxy de Desenvolvimento executando na linha de comando
devproxy. Observe que o Proxy de Desenvolvimento abre uma janela do navegador da Web com as Ferramentas de Desenvolvimento do Chrome visíveis.Inicie o túnel do desenvolvedor executando na linha de comando
devtunnel host --host-header jsonplaceholder.typicode.local --port-numbers 8000 --allow-anonymous.Simule um serviço de nuvem chamando a API de nuvem usando a URL do túnel do desenvolvedor, executando na linha de comando:
curl https://tunnel_id-8000.euw.devtunnels.ms/posts/1.No navegador da Web com as Ferramentas de Desenvolvimento do Chrome, observe as informações sobre a solicitação interceptada e a resposta da API de nuvem.
Observação
A URL de solicitação registrada é a URL da API de nuvem. O cabeçalho do host gravado é o cabeçalho do host interceptado pelo Proxy de Desenvolvimento.
Feche o túnel de desenvolvimento e interrompa o proxy de desenvolvimento pressionando Ctrl+C em suas respectivas sessões na linha de comando.
Configurar o Proxy de Desenvolvimento para usar o DevToolsPlugin para inspecionar solicitações de API usando a URL reescrita
Em seguida, vamos atualizar a configuração do Proxy de Desenvolvimento para mostrar as informações sobre a URL reescrita.
Atualize o arquivo de configuração do Proxy de Desenvolvimento movendo o DevToolsPlugin após o RewritePlugin:
{ "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json", "plugins": [ { "name": "RewritePlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll", "configSection": "rewritePlugin" }, { "name": "DevToolsPlugin", "enabled": true, "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll" } ], "urlsToWatch": [ "https://jsonplaceholder.typicode.com/*", "http://jsonplaceholder.typicode.local/*" ], "rewritePlugin": { "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rewriteplugin.schema.json", "rewritesFile": "devproxy-rewrites.json" }, "logLevel": "information", "newVersionNotification": "stable", "showSkipMessages": true }Inicie o Proxy de Desenvolvimento executando na linha de comando
devproxy. Observe que o Proxy de Desenvolvimento abre uma janela do navegador da Web com as Ferramentas de Desenvolvimento do Chrome visíveis.Inicie o túnel do desenvolvedor executando na linha de comando
devtunnel host --host-header jsonplaceholder.typicode.local --port-numbers 8000 --allow-anonymous.Simule um serviço de nuvem chamando a API de nuvem usando a URL do túnel do desenvolvedor, executando na linha de comando:
curl https://tunnel_id-8000.euw.devtunnels.ms/posts/1.No navegador da Web com as Ferramentas de Desenvolvimento do Chrome, observe as informações sobre a solicitação interceptada e a resposta da API de nuvem.
Observação
A URL de solicitação registrada e o cabeçalho do host mostram a URL da API de nuvem.
Feche o túnel de desenvolvimento e interrompa o proxy de desenvolvimento pressionando Ctrl+C em suas respectivas sessões na linha de comando.
Resumo
Ao usar o Proxy de Desenvolvimento e o túnel do desenvolvedor, você poderá inspecionar as solicitações de API que os serviços de nuvem emitem para APIs de nuvem. Use as ferramentas de inspeção do túnel do desenvolvedor ou o DevToolsPlugin do Proxy de Desenvolvimento para inspecionar as solicitações. Ambas as ferramentas mostram as informações sobre as solicitações interceptadas, incluindo a URL, os cabeçalhos e o corpo e a resposta da API de nuvem. Ao usar o Proxy de Desenvolvimento e o túnel do desenvolvedor, você poderá entender melhor como os serviços de nuvem interagem com APIs de nuvem e solucionar problemas com mais eficiência.
Próximas etapas
Saiba mais sobre o RewritePlugin.







