Back-End

27 mar, 2019

ASP.NET Core: Debugging de APIs REST no Visual Studio com HTTP REPL

Publicidade

Em um artigo anterior demonstrei o uso da Global Tool HTTP REPL, funcionalidade introduzida no .NET Core 2.2 e que permite o teste de APIs REST nas quais foi ativado o uso do Swagger:

Este novo artigo complementa o anterior, desta vez abordando a utilização do HTTP REPL no debugging de APIs criadas com o ASP.NET Core a partir do Visual Studio.

Para os testes detalhados neste artigo foram empregados o Visual Studio 2019 Preview 4.3 (este mesmo tipo de procedimento poderia ser realizado no Visual Studio 2017), uma API REST criada com o ASP.NET Core 2.2, além da versão 0.1.0-preview.19119.4 do HTTP REPL.

Para instalar essa versão do HTTP REPL, foi executado o seguinte comando:

dotnet tool install --global dotnet-httprepl --version 0.1.0-preview.19119.4

A instrução dotnet tool list -g deve exibir o HTTP REPL instalado, caso o processo de implantação tenha sucesso:

O projeto que serviu de base para os testes se encontra no seguinte repositório do GitHub:

Acionar o botão Debug (provavelmente estará indicado no mesmo IIS Express), selecionando em seguida a opção “Browse With…“:

Clique, então, no botão “Add…”:

Em Add Program preencha os campos Program (com o caminho do HTTP REPL. Neste caso, C:\Users\renat\.dotnet\tools\dotnet-httprepl.exe) e Friendly name (com um nome que identifique essa alternativa – HTTP REPL, para este exemplo):

Ao acionar o botão OK, aparecerá agora como uma das alternativas HTTP REPL:

Em Web Browser no botão Debug selecione HTTP REPL:

Alterar também as ocorrências do atributo launchUrl em launchSettings.json de forma que a aplicação, ao iniciar, seja carregada em / (diretório/rota raiz):

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, 
    "iisExpress": {
      "applicationUrl": "http://localhost:8707",
      "sslPort": 44395
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "APIIndicadores": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "",
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Finalmente será exibida uma janela/prompt de execução, com o HTTP REPL se conectando à API REST por meio do comando set base:

A seguir temos um exemplo de debugging da Action Get:

Com o resultado deste teste na próxima imagem:

Referências