Testando serviços Web API com Postman

Thiago Carva
7 min readAug 1, 2017

--

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.

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

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

Instalação

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

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

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

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

Vamos ver alguns exemplos direto de requisições

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.

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.

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.

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?

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.

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.

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.

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.

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.

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.

Lista de Status Return Code

100 ‘Response = Continue’

101 ‘Response = Switching Protocols’

200 ‘Response = OK’

201 ‘Response = Created’

202 ‘Response = Accepted’

203 ‘Response = Non-Authoritative Information’

204 ‘Response = No Content’

205 ‘Response = Reset Content’

206 ‘Response = Partial Content’

300 ‘Response = Multiple Choices’

301 ‘Response = Moved Permanently’

302 ‘Response = Found’

303 ‘Response = See Other’

304 ‘Response = Not Modified’

305 ‘Response = Use Proxy’

306 ‘Response = Unused’

307 ‘Response = Temporary Redirect’

400 ‘Response = Bad Request’

401 ‘Response = Unauthorized’

402 ‘Response = Payment Required’

403 ‘Response = Forbidden’

404 ‘Response = Not Found’

405 ‘Response = Method Not Allowed’

406 ‘Response = Not Acceptable’

407 ‘Response = Proxy Authentication Required’

408 ‘Response = Request Timeout’

409 ‘Response = Conflict’

410 ‘Response = Gone’

411 ‘Response = Length Required’

412 ‘Response = Precondition Failed’

413 ‘Response = Request Entity Too Large’

414 ‘Response = Request-URI Too Long’

415 ‘Response = Unsupported Media Type’

416 ‘Response = Requested Range Not Satisfiable’

417 ‘Response = Expectation Failed’

500 ‘Response = Internal Server Error’

501 ‘Response = Not Implemented’

502 ‘Response = Bad Gateway’

503 ‘Response = Service Unavailable’

504 ‘Response = Gateway Timeout’

505 ‘Response = HTTP Version Not Supported’

--

--