2. ● 2008 Tec / 2014 Dev
● Litoral + SP = Vida de fretado
● Arquiteta de Soluções
● Desenvolvedora Backend
● Entusiasta em Agile
● Caiçara Ágil, Baixada Nerd
e Devs JavaGirl
3. Agenda
1. O que é um contrato
2. Problemas no dia-a-dia
3. Experiência
4. Tipos
5. Ferramentas
6. Conclusão
4. “Pacto entre duas ou mais
pessoas, que se obrigam a cumprir o que
foi entre elas combinado sob determinadas
condições.”
Afinal, o que é um contrato?
8. Swagger
A maior e mais ativa comunidade
de desenvolvedores, parte disso
em função de ser a mais antiga no
mercado.
https://swagger.io/
9. API Blueprint
Tem um website bonito e intuitivo
onde é fácil encontrar o projeto de
interesse.
https://apiblueprint.org/
10. RAML
Padrão aberto suportado por um
grupo de developers que inclui
pessoas da MuleSoft, AngularJS e
PayPal. É o mais intuitivo para
começar a escrever a
documentação.
https://raml.org/
11.
12. Problemas encontrados no dia a dia
Gestão e
Governança
dos contratos
Ajustes e novas
funcionalidades
que acabam
quebrando
contrato
Atualização de
contrato que
não reflete na
aplicação
15. ● Garante as boas práticas de design da sua api
● Permite desenvolvimento do lado cliente
paralelamente à de seu serviço
● Possibilita a utilização de mocks conforme contrato e
garante a qualidade do consumo da api.
Fazer um contrato antes de se
desenvolver a api:
16.
17. Garantir que haja uma forma de
sabermos das mudanças de
contrato em tempo de
desenvolvimento.
18. Testes de Contrato
“Você coloca sua casa em chamas para testar seu
alarme de fumaça? Não, você testa o contrato que
mantém com seus ouvidos usando o botão de teste.”
(Pact)
22. ● Dados que retorna e estrutura do objeto de retorno
● Headers da resposta
● Se a resposta está de acordo.
● Se o content-type permanece o mesmo
● Se quando der erro o status está de acordo com os
códigos de erro.
● Se uma requisição com informações incompleta, qual
será o comportamento da requisição.
23. Moral da história
Adotamos o Spring Contract em partes
Usamos uma abordagem mais para teste de
contratos orientados por documentação