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.

"Para que os seus corações sejam consolados, e estejam unidos em amor, e enriquecidos da plenitude da inteligência, para conhecimento do mistério de Deus e Pai, e de Cristo, Em quem estão escondidos todos os tesouros da sabedoria e da ciência."
Colossenses 2:2,3

Referências:


José Carlos Macoratti