ASP .NET Core MVC - Testando Web API no PowerShell
Neste artigo vamos iniciar a criação de uma WEB API usando a ASP .NET Core 3.0 para a seguir mostrar como consumir a API em uma aplicação ASP .NET Core MVC. |
Continuando a quarta parte do artigo vou mostrar como podemos testar a nossa WEB API usando o PowerShell.
Você sabia que podemos testar o acesso aos serviços de uma Web API usando o PowerShell ?
Pode não ser a forma mais comum ou indicada para fazer isso mas é uma forma bem fácil e simples de criar requisições HTTP na linha de comando.
Os comandos do PowerShell podem ser executados usando a janela Console do Visual Studio Package Manager, que pode ser aberta no menu: Ferramentas ➤ NuGet Package Manager ➤ Console do Gerenciador de Pacotes.
Você também pode abrir uma janela do PowerShell no seu ambiente Windows e criar requisições HTTP na linha de comando para testar sua API.
Se você considerar que o PowerShell é uma solução multiplataforma e que podemos usá-lo no Visual Studio e no Visual Studio Code, ele passa a ser uma boa opção para testar APIs.
Vamos ver isso funcionando na prática usando a API criada na primeira parte do artigo.
Você pode consultar a documentação do PowerShell neste link : PowerShell - Invoke-RestMethod
Testando a Web API no PowerShell
Para testar a nossa Web API - ApiReservas - vamos abrir e deixar o projeto em execução e obter a url ou endpoint de atentimento da Web API.
Para o nosso exemplo obtemos o endpoint: https://localhost:44311/api/reservas
Vamos abrir uma janela no Package Manager Console e digitar os comandos no PowerShell para testar.
1- HTTP GET
comando : Invoke-RestMethod https://localhost:44311/api/reservas -Method GET
Retorna todas as reservas.
2- HTTP GET {id}
comando : Invoke-RestMethod https://localhost:44311/api/reservas/2 -Method GET
Retorna a reserva de com reservaId igual a 2.
3- HTTP POST
comando : Invoke-RestMethod https://localhost:44311/api/reservas -Method POST -Body (@{Nome="Teste"; InicioLocacao="Santos"; FimLocacao="Jaú"} | ConvertTo-Json) -ContentType "application/json"
Inclui uma nova reserva.
O argumento
-Body especifica o corpo da solicitação que é
codificada para JSON usando o argumento ConvertTo-Json.
O argumento -ContentType é usado para definir o cabeçalho
Content-Type para a solicitação, que no meu caso é 'application/json'.
4- HTTP PUT
comando : Invoke-RestMethod https://localhost:44311/api/reservas -Method PUT -Body (@{Id="1"; Nome="Macoratti 2"; InicioLocacao="Lins"; FimLocacao="Bauru"}) -ContentType "application/x-www-form-urlencoded"
Altera os dados da reserva de id igual a 1 para
os dados informados.
Como enviamos os objetos reserva no formulário não precisamos usar o argumento ConvertTo-Json do comando, e configuramos o "ContentType" como "application/x-www-form-urlencoded"
5- HTTP DELETE
comando : Invoke-RestMethod https://localhost:44311/api/reservas/3 -Method DELETE
Exclui a reserva de id igual a 3. Para verificarmos basta repetir o comando HTTP GET :
Temos assim mais uma opção disponível para poder testar a nossa Web API.
Na próxima parte do artigo veremos como proteger a nossa API.
Colossenses 2:2,3
Referências:
ASP .NET Core - Implementando a segurança com ...
ASP.NET Core MVC - Criando um Dashboard ...
ASP .NET Core - Apresentando Razor Pages -
ASP .NET Core MVC - CRUD básico com ADO .NET
ASP .NET Core - Implementando e consumindo JWT
ASP .NET Core - Criando uma API CRUD - I
ASP .NET Core - Criando sua primeira Web API