Testando API Rest Com Insomnia Core

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 25

Testando API Rest com

Insomnia Core
15 de setembro de 2020

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Objetivo

Este material não é um curso ou parte de nenhum curso ou treinamento. Foi


elaborado com o único objetivo de transferir conhecimentos adquiridos em
estudos autônomos.

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Instalação do Cadastrar chamadas Compartilhar com
Insomnia Core com métodos simples outras pessoas

10 min 1 min 10 min 10 min 1 min

Preparação do Cadastrar chamadas


Worskspace com alguma
segurança (token)
https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Instalação do Insomnia Core

Nesses slides não há explicação sobre API Rest Apesar de não ter explicações, não poderia
nem detalhes de ferramentas de testes de API deixar de indicar locais onde possam ler ou ver:
Rest. Siga os passos abaixo para instalar:
https://support.insomnia.rest/article/11-getting-
1. Efetue o download do Insomnia Core started
https://insomnia.rest/download/core/?
2. Siga os passos de instalação. https://youtu.be/tgs-uJUDvdo

Para Linux veja outras opções de instalação https://youtu.be/3tB0uDliS6Y


https://support.insomnia.rest/article/23-installa
tion#linux

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Por que Insomnia Core

Quando o resultado da API é apenas listar dados, podemos acessar nossa API
diretamente pelo navegador. Mas, se precisarmos testar a criação de um novo
registro por meio do método POST ou a exclusão de um dado por meio do
método DELETE, podemos notar algumas dificuldades.

Como podemos fazer esses testes? Você já criou uma tag HTML de formulário
para testar o envio de dados para um servidor? Isso pode ser bem cansativo e
não muito produtivo, não é mesmo?

O Insomnia Core é uma ferramenta cliente simples e poderosa para criar e


executar chamadas para API com qualquer método HTTP. De forma simples,
sem necessidade de escrita de código-fonte ou scripts.

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Preparação do
Workspace
Workspace é usado para isolar
projetos dentro do Insomnia. Todos os
dados, exceto as configurações
globais, são armazenados no nível do
Workspace.

Ao executar a primeira vez você verá


que a ferramenta já vem com um
workspace chamado “Insomnia”.

Na figura ao lado esse campo “roxo” aí


com um ícone 🔻 no final .

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Preparação do
Workspace
Ao clicar no ícone 🔻 podemos
observar vários opções.

Escolha a opção “Create Workspace” e


digite “Test Heroku API”.

Pronto.

O ideal é ter um workspace por projeto


e dentro do Workspace criar “folders”
para cada “domínio da aplicação”.

Mas aí vai ser uma decisão de vocês.

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Preparação do
Workspace
Com o Worspace criado e
selecionado vamos observar outro
recurso importante: “enviroments”..

Inicialmente não há “ambiente” criado


e é mostrado “No Enviroment”. Ao
clicar no ícone 🔻 ao lado do nome
“No Enviroment” podemos observar as
opções.

Escolha a opção “Managed


Enviroments”

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Preparação do
Workspace
Notamos que em “Managed
Enviroments” podemos definir “dados”
para um “ambiente” chamado “Base
Enviroment“ e também podemos criar
“sub enviroments”.

Nesse teste criaremos apenas dados


Neste exemplo estamos utilizando uma API hospedada no Heroku
no “Base Enviroment”. O seu conteúdo https://still-mesa-85287.herokuapp.com
é um JSON, inicialmente com o valor
vazio {}.Substitua pelo conteúdo: Para mais informações sobre APIs no Heroku consulte:
https://devcenter.heroku.com/articles/mean-apps-restful-api

{ “baseURLl”: “URL_DESEJADA”}

Pressione “Done” para salvar.

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Cadastrar chamadas com métodos simples

Não é nosso objetivo classificar uma API Rest Método GET


ou qualquer outra coisa.
- com ou sem parâmetros
O termo métodos simples está sendo usado
aqui para dizer que vamos criar requisições Método POST e PUT
GET, POST, PUT e DELETE passando
- passando dados no formato JSON
informações em parâmetros no formato texto.
Método DELETE
A ferramenta permite outras formas que é fácil
encontrar documentação sobre isso.
- com parâmetro obrigatório

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Novas Requisições
- Simples - GET
Ao clicar no ícone + as opções serão
mostradas.

Crie um “folder” com nome “Contacts”.

Crie um “request” com nome “LIST”


utilizando método “GET”.
Tanto o nome como o
Ao clicar no botão “Create” a método HTTP poderão ser
requisição é criada e fica disponível corrigidos depois.
para a complementar as informações
(próximo slide).

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Novas Requisições
- Simples - GET
No campo ao lado do método GET,
digite a url.

Como cadastramos uma variável


“base_URL” no “Base Enviment”, basta
digitar “baseURL” que a ferramenta vai
mostrar as opções de variáveis
escolha “baseURL” e depois
complemente conforme mostra a
figura ao lado.
- STATUS igual a 200 OK
Ao clicar no botão “Send” a requisição - array de objetos (JSON)
é executada e o resultado é mostrado.

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Novas Requisições
- Simples - GET
No “folder” “Contacts” crie um
“request” com nome “SHOW”
utilizando método “GET”.

No campo ao lado do método GET,


digite a url:

base_url /contacts/ID_AQUI

ID_AQUI substutua por um id


mostrado no resultado da request - STATUS igual a 200 OK
“LIST”. - um único objeto (JSON)
Clique em “Send” e vai obter o retorno.

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Novas Requisições
- Simples - POST
No “folder” “Contacts” crie um
“request” com nome “CREATE”
utilizando método “POST”.

No campo ao lado do método POST,


digite a url: “base_url /contacts/”

Na aba “Body”, clique no ícone 🔻 e


escolha “TEXT” >> “JSON”.
- STATUS igual a 400 Bad Request
Coloque o conteúdo como na imagem. - { "message": "This email is already
registered"}
Clique em “Send” e vai obter o retorno.

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Novas Requisições
- Simples - POST
“Contacts” - “CREATE”

Mude o email no JSON e clique


novamente em “Send” e vai obter o
retorno.

- STATUS igual a 200 OK


- um único objeto (JSON)

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Novas Requisições
- Simples - PUT
No “folder” “Contacts” crie um
“request” com nome “UPDATE”
utilizando método “PUT”.

No campo ao lado do método PUT,


digite a url: “base_url /contacts/ID”

Substitua ID por algum existente.

Na aba “Body”, clique no ícone 🔻 e


escolha “TEXT” >> “JSON”. - STATUS igual a 200 OK
- um único objeto (JSON)
Coloque o conteúdo como na imagem.

Clique em “Send” e vai obter o retorno.

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Novas Requisições
- Simples - DELETE
No “folder” “Contacts” crie um
“request” com nome “REMOVE”
utilizando método “DELETE”.

No campo ao lado do método DELETE,


digite a url:

base_url /contacts/ID_AQUI

ID_AQUI substutua por um id


mostrado no resultado da request
“LIST”. - STATUS igual a 204 OK

Clique em “Send” e vai obter o retorno.

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Cadastrar chamadas com segurança

Uma das formas de implementar segurança Método POST


para uma API é gerar um token que deve ser
encaminhado em chamadas que requerem uma - passando credenciais e retornando o
identificação do usuário que está solicitando. token

Apresentaremos um exemplo de Token Método GET e POST


Authorization chamado de “JWT”. Para maiores
- passando dados no formato JSON e o
informações consulte
token no cabeçalho
https://blog.logrocket.com/how-to-secure-a-rest
-api-using-jwt-7efd83e71432/

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Novas Requisições
- Segurança - POST
Crie um “folder” com nome “Users”.

Crie um “request” com nome


“CREATE” utilizando método “POST”.

No campo ao lado do método POST,


digite a url: “base_url /users/”

Na aba “Body”, clique no ícone 🔻 e


escolha “TEXT” >> “JSON”.
- STATUS igual a 200 OK
Coloque o conteúdo como na imagem. - um único objeto (JSON)
Clique em “Send” e vai obter o retorno.

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Novas Requisições
- Segurança - POST
Crie um “folder” com nome “Sessions”.

Crie um “request” com nome “AUTH”


utilizando método “POST”.

No campo ao lado do método POST,


digite a url: “base_url /sessions/”

Na aba “Body”, clique no ícone 🔻 e


escolha “TEXT” >> “JSON”.
- STATUS igual a 200 OK
Coloque o conteúdo como na imagem. - um único objeto (JSON)
que inclui um token
Clique em “Send” e vai obter o retorno.

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Novas Requisições
- Segurança
Escolha a opção “Managed
Enviroments” e inclua mais uma
variável chamada “baseToken” com o
valor do token retornado na chamada
anterior.

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Novas Requisições
- Segurança - POST
Crie um “folder” com nome
“Appointments”. Crie um “request”
com nome “CREATE” utilizando
método “POST”. No campo ao lado do
método POST, digite a url: “base_url
/appointments/”. Na aba “Body”, clique
no ícone 🔻 e escolha “TEXT” >>
“JSON”. Coloque o conteúdo como na
imagem. Na aba “Auth”, escolha
“Bearer Token” e no campo Token
escreva “baseToken”. - STATUS igual a 200 OK
- um único objeto (JSON)
Clique em “Send” e vai obter o retorno.

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Novas Requisições
- Segurança - GET
No “folder” com nome “Appointments”,
crie um “request” com nome “LIST”
utilizando método “GET”. No campo ao
lado do método GET, digite a url:
“base_url /appointments/”. Na aba
“Auth”, escolha “Bearer Token” e no
campo Token escreva “baseToken”.

Clique em “Send” e vai obter o retorno.

- STATUS igual a 200 OK


- um ARRAY de objetos
(JSON)

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Compartilhe
com outras
pessoas Obrigado!!
link abaixo

https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Este material não é um curso ou parte de nenhum curso ou treinamento. Foi
elaborado com o único objetivo de transferir conhecimentos adquiridos em
estudos autônomos.

Obrigado!!
https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira

Você também pode gostar