Testando API Rest com Insomnia Core - 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.
Size: 909.38 KB
Language: pt
Added: Sep 15, 2020
Slides: 25 pages
Slide Content
https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
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
10 min
Instalação do
Insomnia Core
1 min
Preparação do
Worskspace
10 min
Cadastrar chamadas
com métodos simples
10 min
Cadastrar chamadas
com alguma
segurança (token)
1 min
Compartilhar com
outras pessoas
https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Instalação do Insomnia Core
Nesses slides não há explicação sobre API Rest
nem detalhes de ferramentas de testes de API
Rest. Siga os passos abaixo para instalar:
1.Efetue o download do Insomnia Core
https://insomnia.rest/download/core/?
2.Siga os passos de instalação.
Para Linux veja outras opções de instalação
https://support.insomnia.rest/article/23-installa
tion#linux
Apesar de não ter explicações, não poderia
deixar de indicar locais onde possam ler ou ver:
https://support.insomnia.rest/article/11-getting-
started
https://youtu.be/tgs-uJUDvdo
https://youtu.be/3tB0uDliS6Y
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
no “Base Enviroment”. O seu conteúdo
é um JSON, inicialmente com o valor
vazio {}.Substitua pelo conteúdo:
{ “baseURLl”: “URL_DESEJADA”}
Pressione “Done” para salvar.
Neste exemplo estamos utilizando uma API hospedada no Heroku
https://still-mesa-85287.herokuapp.com
Para mais informações sobre APIs no Heroku consulte:
https://devcenter.heroku.com/articles/mean-apps-restful-api
https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Não é nosso objetivo classificar uma API Rest
ou qualquer outra coisa.
O termo métodos simples está sendo usado
aqui para dizer que vamos criar requisições
GET, POST, PUT e DELETE passando
informações em parâmetros no formato texto.
A ferramenta permite outras formas que é fácil
encontrar documentação sobre isso.
Cadastrar chamadas com métodos simples
Método GET
-com ou sem parâmetros
Método POST e PUT
-passando dados no formato JSON
Método DELETE
-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”.
Ao clicar no botão “Create” a
requisição é criada e fica disponível
para a complementar as informações
(próximo slide).
Tanto o nome como o
método HTTP poderão ser
corrigidos depois.
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.
Ao clicar no botão “Send” a requisição
é executada e o resultado é mostrado.
-STATUS igual a 200 OK
-array de objetos (JSON)
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
“LIST”.
Clique 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 - 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”.
Coloque o conteúdo como na imagem.
Clique em “Send” e vai obter o retorno.
-STATUS igual a 400 Bad Request
-{ "message": "This email is already
registered"}
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”.
Coloque o conteúdo como na imagem.
Clique 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 - 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”.
Clique em “Send” e vai obter o retorno.
-STATUS igual a 204 OK
https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Uma das formas de implementar segurança
para uma API é gerar um token que deve ser
encaminhado em chamadas que requerem uma
identificação do usuário que está solicitando.
Apresentaremos um exemplo de Token
Authorization chamado de “JWT”. Para maiores
informações consulte
https://blog.logrocket.com/how-to-secure-a-rest
-api-using-jwt-7efd83e71432/
Cadastrar chamadas com segurança
Método POST
-passando credenciais e retornando o
token
Método GET e POST
-passando dados no formato JSON e o
token no cabeçalho
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”.
Coloque o conteúdo como na imagem.
Clique 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
- 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”.
Coloque o conteúdo como na imagem.
Clique em “Send” e vai obter o retorno.
-STATUS igual a 200 OK
-um único objeto (JSON)
que inclui um token
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”.
Clique 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
- 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
link abaixo
Obrigado!!
https://pt.scribd.com/user/23218346/Pedro-Fernandes-Vieira
Obrigado!!
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.