Aprenda a testar serviços Web API utilizando o Postman, aplicação que permite enviar e receber dados via requisições HTTP.

API — Aplication Program Interface

API é o acrônimo de Application Programming Interface ou, em português, Interface de Programação de Aplicativos. API é a “matrix” dos aplicativos, ou seja, uma interface que roda por trás de tudo: enquanto você usufrui de um aplicativo ou site, a sua API pode estar conectada a diversos outros sistemas e aplicativos.

Quando o assunto é web, a funcionalidade da API pode ser ainda maior. Existem diversos serviços que disponibilizam seus códigos para serem utilizados em outros sites. Talvez o melhor exemplo disso seja o Google Maps. Diversos outros sites utilizam este serviço dentro de suas páginas, usando o código original e adaptando-o da maneira mais conveniente.

0_1501679561643_7125d00a-8ac7-44e6-bd83-be47231b3260-image.png

POSTMAN

Postman ajuda você a ser extremamente eficiente ao trabalhar com APIs, com ele você pode construir solicitações rapidamente, guardá-las para uso posterior e analisar as respostas enviadas pelo API. Postman pode reduzir drasticamente o tempo necessário para testar e desenvolver APIs
Download Postman

https://www.getpostman.com/apps

Acessar o site do Postman e realizar o download compatível com seu sistema operacional.

0_1501679617192_8ff9f9f9-08f1-4099-a7fd-254222db6b59-image.png

Instalação

Clicar no arquivo executável e seguir os passos de instalação.

0_1501679643222_63745d1c-755d-4412-ab12-afc8fe62da19-image.png

Com a facilidade do uso do mesmo login do Google, usar sua conta.

0_1501679666291_8c23df9f-7bcf-4a14-a5b6-0c87ffba4bb4-image.png

Conhecendo o Postman

1 - Temos as abas History e Collection, tudo que enviar através do Postman ficará gravado aqui, poderá recuperar uma requisição apenas clicando sobre ela, ou criar uma coleção de tarefas.

2 - Campo para inserir a URL que será enviada a requisição.

3 - Seleção do tipo de requisição a ser enviada (GET, POST , PUT, DELETE).

4 - Parâmetros e valores que serão adicionados a URL

5 - Parâmetros e valores que serão adicionados ao Header

6 - Botão de Envio de requisição

0_1501679924765_3d979adf-6529-4845-9bec-05b6063f5460-image.png

Em geral utiliza-se o GET para recuperar, o POST para criar, o PUT para alterar e o DELETE para apagar.

0_1501679951287_814b5724-8c7b-4304-b5e7-147805e354b7-image.png

Vamos ver alguns exemplos direto de requisições

Irei utilizar a URL de treinamento https://ninjarest.herokuapp.com para realizar as chamadas principais.

Começaremos com um GET simples da chamada da URL.

Informar a URL no campo, deixar a requisição GET selecionada e clicar no botão Send.

Nota que foi criado uma collection no canto esquerdo das chamadas pra esse serviço (Veremos mais pra frente sua utilidade.

O que é importante verificar após uma chamada ?

Podemos ver que foi retornado um valor no campo , uma mensagem de boas vindas.

Foi retornado também o status 200 OK e o tempo que levou para retornar.

Validamos assim que nosso primeiro teste está OK, no final desse post vou deixar uma lista com os status de chamadas mais frequentes, veremos mais alguns exemplos a seguir.

0_1501680045192_035ef6a4-2e4e-4609-969c-35f1f42a0424-image.png

Logo após a verificação de que o serviço está funcionando, vamos listar o retorno que essa URL nos fornece, vamos dar um GET na listagem de usuários.

Para essa chamada, como não temos a documentação do projeto, eu sei que ela tem uma lista de usuários, para isso incluímos o parâmetro “/users” na URL para retornar essa lista com sucesso.

https://ninjarest.herokuapp.com/users

O que é importante verificar após uma chamada com sucesso?

Podemos ver que foi retornado a lista de usuários ,e alguns parâmetros que podemos usar depois.

Foi retornado também o status 200 OK e o tempo que levou para retornar.

0_1501680623428_999a0fc0-c84c-443b-9787-e0c4300c520b-image.png

Ah mas e se eu fizer uma chamada errada? (Mudamos o parâmetro da URL)

O que é importante verificar após uma chamada sem sucesso?

Foi retornado uma mensagem de erro no corpo da requisição.

Foi retornado também o status 404 Not Found que é a famosa página não encontrada e o tempo que levou para retornar.

Testes negativos também fazem parte da validação da API, não só os testes com retorno OK.

0_1501680661868_10d77370-6fd0-46d4-b75f-f35267c9d4b6-image.png

Seguindo com nosso fluxo de requisição, vamos fazer uma inclusão de um usuário nessa lista?

Pra isso, usaremos o método do POST, para incluir esse novo registro precisamos montar um Body no formato JSON que vamos utilizar.

Esse body será montado com o padrão da lista de usuários que consultamos nos primeiros passos, nosso GET de consulta retornou uma lista com os campos padrão, como estamos trabalhando sem documentação, já está listado os campos que são obrigatórios para o nosso POST funcionar.

Vamos Testar?

O que é importante verificar após uma chamada ?

O sistema não retornou nenhuma mensagem no corpo da requisição.

Foi retornado o status 200 OK e o tempo que levou para retornar.

Será que deu certo nosso teste somente com essa chamada? O que faremos?

0_1501680693214_f12e89ee-74fd-4963-9ed9-ddb7197ccd38-image.png

Simples, vamos usar nosso método de consulta GET para verificar se nossa inclusão está constando na lista de usuários.

Para essa consulta, eu vou inserir um parâmetro de pesquisa na URL que estou utilizando para facilitar a minha chamada, vou usar o email de inclusão para facilitar meu resultado.

O que é importante verificar após uma chamada ?

O sistema retornou nosso registro com os dados que foram incluídos.

O sistema criou um ID para nosso usuário.

Foi retornado o status 200 OK e o tempo que levou para retornar.

0_1501680712669_93237a96-4805-4ef2-8da7-0655ce501a53-image.png

Voltamos com nosso fluxo de requisição, vamos fazer uma Alteração do usuário que foi adicionado?

Pra isso, usaremos o método do PUT, para alterar esse registro, precisamos montar um Body no formato JSON com os campos obrigatórios.

Esse body será montado com o padrão da lista de usuários que consultamos nos primeiros passos, como estamos trabalhando sem documentação, já está listado os campos que são obrigatórios para o nosso PUT funcionar.

Vamos Testar?

O que é importante verificar após uma chamada?

O sistema não retorna nenhuma mensagem no corpo da requisição.

Foi retornado o status 200 OK e o tempo que levou para retornar.

0_1501680747969_a659bbef-f793-4a9d-9245-5da4f8cd2b5a-image.png

Vamos verificar na listagem se o usuário sofreu alterações?

Usaremos nosso famoso GET para consultar a listagem de usuários.

O que é importante verificar após uma chamada?

O sistema não retornou uma lista com todos os usuários na chamada.

O retorno da chamada mostrou que foi alterado o nome do usuário cadastrado.

Foi retornado o status 200 OK e o tempo que levou para retornar.

0_1501680770733_558b5a56-7c38-47dc-8694-ba8e34c8308c-image.png

Por fim, vamos utilizar nossa última chamada, faremos o DELETE do usuário cadastrado.

Pra isso, usaremos o método DELETE, para excluir esse registro, precisamos passar nessa chamada o ID do usuário que será excluído.

Vamos Testar?

O que é importante verificar após uma chamada?

O sistema não retorna nenhuma mensagem no corpo da requisição.

Foi retornado o status 200 OK e o tempo que levou para retornar.

0_1501680791967_3a23da34-0e8b-4b47-8fb2-eec5da948344-image.png

Vamos verificar na lista se nosso usuário foi mesmo excluído?

Vamos usar o GET com o parâmetro do ID do usuário que foi deletado.

O que é importante verificar após uma chamada?

O sistema retornou uma mensagem no corpo da requisição informando que o usuário não foi encontrado.

Foi retornado o status 404 Not Found OK e o tempo que levou para retornar.

0_1501680808620_6cbd00c8-0fb9-43ee-a01e-141a814e6eca-image.png

Muito bom, por fim, vou dar uma dica do porque é bom montar collections para futuras chamadas, quando abrimos as opções de uma coleção de chamadas podemos clicar na opção Run que faz uma automação e retorno de todas as chamadas daquela coleção.

0_1501680821099_40a195c2-6a3a-40f3-9f6b-9dfe3edcdb3e-image.png

0_1501680827067_241c91eb-0e2c-43cf-936b-c61e8eb8f632-image.png

0_1501680836799_9866b0d2-e3fb-4493-b5a9-9773e461874f-image.png