O documento discute testes de API, REST, protocolo HTTP e integração contínua. Explica o que é uma API e seus benefícios. Detalha os métodos HTTP, status codes e arquitetura REST. Discute a importância de testes de API e ferramentas como HTTParty e RSpec. Também aborda integração contínua com Jenkins.
3. O que vamos ver?
● API
○ Por quê API?
○ Exemplos do uso de API
● REST
● Protocolo HTTP
○ Métodos HTTP
○ HTTP Status Code
● Por quê teste de API?
○ HTTParty
○ RSpec
○ Como Testar?
○ Como é na prática?
● Integração Contínua
○ Jenkins
○ Como é na prática?
4. API - Application Programming Interface
Interface de programação de aplicativos. Uma API é um conjunto de
comandos, funções, protocolos e objetos que os programadores podem
usar para criar software ou interagir com um sistema externo. Ele
fornece aos desenvolvedores comandos padrão para executar
operações comuns para que não tenham que escrever o código do
zero."
TechTerms, 2017
5. Por quê API?
● Construções de novas aplicações
● Desempenho da sua aplicação
● Desenvolvedores não precisam desenvolver tudo do zero
● Serviço pode ser usado em mais de uma aplicação dentro ou fora de
uma empresa
7. REST - REpresentational State Transfer
Transferência de Dados Representacional é um estilo de arquitetura e
uma abordagem às comunicações que é freqüentemente usada no
desenvolvimento de serviços da Web. Normalmente é executado em
HTTP (Hypertext Transfer Protocol).
8. REST - REpresentational State Transfer
● Interações entre clientes e serviços são aprimoradas por ter um número
limitado de operações (verbos).
● Flexibilidade é fornecida ao atribuir recursos seus próprios
identificadores de recursos universais (URIs) únicos.
● Como cada verbo tem um significado específico (GET, POST, PUT e
DELETE), o REST evita a ambiguidade. Ou seja, dependendo de como o
recurso será consumido através do identificador, o seu comportamento
irá mudar.
9. REST - REpresentational State Transfer
As interações são compostas, principalmente, de três informações:
● Endpoint: endereços web que executam as ações e são acessados
diretamente pelos clientes.
● Verbo: ação desejada a ser realizada no recurso identificado.
● Body: Informações que são enviadas, como dados de um cadastro.
10. Protocolo HTTP
O protocolo HTTP define métodos (às vezes referidos como verbos) para
indicar a ação desejada a ser realizada no recurso identificado.
Quantos aos métodos, existem 4 que são os mais utilizados.
13. HTTP Status Code
Esse é outro item importante para a arquitetura de uma API REST, porque, da mesma
maneira que acontece como os verbos HTTP, elas formam um padrão facilmente
reconhecido por quem for consumir o webservice.
Os códigos de sucesso tem o padrão 20x, os de redirecionamento 30x, os de erro do
cliente 40x e os de erro de servidor 50x.
Os principais códigos utilizados para as respostas de um endpoint são:
14.
15.
16.
17.
18.
19. Por quê teste de API?
“Ideal”
Unit
Service
UI
Manual
20. HTTParty
É um gem ruby que simplifica a manipulação de request e
response REST.
21. RSpec
O RSpec é um framework BDD (Behaviour-Driven Development
ou Desenvolvimento Guiado por Comportamento) escrito em
Ruby, que permite que você escreva testes em uma linguagem
mais natural.
22. Como Testar?
GET
POST
PUT
DELETE
Faça um request GET para um conteúdo específico e
verifique se o status code 200 foi retornado.
Depois verifique se o conteúdo esperado foi retornado
também.
23. Como Testar?
GET
POST
PUT
DELETE
Faça um request com POST e verifique se o status code
201 foi retornado
Depois, faça um request com GET para o conteúdo
gravado anteriormente e verifique se o mesmo foi salvo
corretamente.
Adicione testes POST com request incorretos, como falta
de conteúdo por exemplo, que irão falhar. Deve-se
retornar status code 400 ( Bad Request).
24. Como Testar?
GET
POST
PUT
DELETE
Faça um request PUT para atualizar um conteúdo e
verifique se o status code 204 foi retornado
Depois, faça um request com GET para um conteúdo
alterado e verifique se retorna o novo conteúdo.
25. Como Testar?
GET
POST
PUT
DELETE
Faça um DELETE para um conteúdo específico.
Depois faça um GET para o ID do conteúdo anterior,
deve-se retornar status code 404 (Not Found).
26. API de teste
POST: api/series -> Adicionar série
GET: api/series -> Retornar todas as séries
GET: api/series/serie_id -> Retornar uma série específica
PUT: api/series/serie_id -> Atualizar uma série específica
DELETE: api/series/serie_id -> Deletar uma série específica
28. Integração Contínua
Integração Contínua é uma metodologia moderna de
desenvolvimento, em que os desenvolvedores envolvidos em um
projeto integram seus trabalhos continuamente.
29. Jenkins
Jenkins é um servidor de automação de código aberto escrito em Java. A
Jenkins ajuda a automatizar a parte não humana do processo de
desenvolvimento de software, com integração contínua e facilitando
aspectos técnicos de entrega contínua.