Partilhar via


Simule respostas simuladas na Internet

Usar o Dev Proxy é a maneira mais fácil de simular uma API. Se você está criando o front-end e a API ainda não está pronta, se precisa integrar seu back-end a um serviço externo ou se deseja testar seu aplicativo com respostas diferentes, o Dev Proxy pode ajudá-lo a simular respostas de API. Ao integrar sua API com serviços de nuvem, você precisa expor sua API pela Internet para que o serviço de nuvem possa acessá-la. Para expor respostas simuladas pelo Dev Proxy na internet, use Dev Tunnels. Este artigo explica como configurar respostas simuladas para serem expostas na Internet usando Dev Tunnels.

Definir respostas simuladas

Para expor respostas simuladas pelo Dev Proxy na internet, comece por configurar as simulações.

Importante

Neste momento, os Dev Tunnels suportam apenas a exposição de respostas simuladas HTTP através da Internet.

Criar respostas fictícias

Crie um arquivo chamado mocks.json que contenha as respostas simuladas para sua API personalizada. Por exemplo, para simular uma GET solicitação para http://api.contoso.com/products, defina:

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/mockresponseplugin.mocksfile.schema.json",
  "mocks": [
    {
      "request": {
        "url": "http://api.contoso.com/products",
        "method": "GET"
      },
      "response": {
        "headers": [
          {
            "name": "content-type",
            "value": "application/json"
          }
        ],
        "body": [
          {
            "id": 1,
            "name": "Contoso Coffee Beans",
            "price": 12.99
          },
          {
            "id": 2,
            "name": "Contoso Espresso Machine",
            "price": 249.99
          }
        ]
      }
    }
  ]
}

Você também pode simular erros, respostas binárias ou respostas condicionais usando statusCode, nthou bodyFragment.

Configurar o MockResponsePlugin

Crie um arquivo de configuração do Dev Proxy chamado devproxyrc.json e habilite o MockResponsePlugin:

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "MockResponsePlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "mocksPlugin"
    }
  ],
  "urlsToWatch": [
    "http://api.contoso.com/*"
  ],
  "mocksPlugin": {
    "mocksFile": "mocks.json"
  }
}

Importante

Para corresponder a vários endpoints, utilize caracteres universais em urlsToWatch. Para garantir a correspondência correta, coloque simulações mais específicas primeiro no seu mocks.json.

Verificar configuração

Verifique se as simulações estão funcionando corretamente executando o Proxy de Desenvolvimento e enviando solicitações para a API simulada.

Inicie o Dev Proxy, supondo que você salvou a configuração do Dev Proxy em um arquivo chamado devproxyrc.json no diretório de trabalho atual:

devproxy

Teste seu simulado enviando uma solicitação através do Dev Proxy:

curl -x http://127.0.0.1:8000 http://api.contoso.com/products

Você deve receber a lista de produtos simulados definida em mocks.json.

Exponha a API simulada com túneis de desenvolvimento

Para expor respostas simuladas na Internet, inicie um túnel dev mapeado para a porta do Proxy Dev. Configure o túnel para usar o nome de anfitrião configurado para a API simulada.

Advertência

Permitir o acesso anônimo a um túnel de desenvolvimento significa que qualquer pessoa na Internet pode se conectar ao seu servidor local, se puder adivinhar o ID do túnel de desenvolvimento.

devtunnel host -p 8000 -a --host-header api.contoso.com

Este comando mapeia a porta Dev Proxy para uma URL HTTP pública. Agora você pode acessar sua API simulada de qualquer lugar:

curl http://<your-tunnel-id>-8000.<region>.devtunnels.ms/products