SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
Construindo APIs
com a Open API
Spec e Java
Raphael Rodrigues
BsC em Ciência da Computação UFRJ;
+- 15 anos na área de desenvolvimento de software;
Javeiro desde então;
Diferentes papéis:
× Dev, Tech Lead, IT Architect;
× Pre-sales, Consulting;
× Instructor;
× Speaker;
2
Olá!
APIs?
APIs?
"O termo API aparece pela primeira vez em
um artigo acadêmico em 1968"
https://dl.acm.org/purchase.cfm?id=1476661
1.API Economy
O que é uma abordagem API First?
"Uma empresa sem API para interconectividade é como viver
antes da era da internet."
"Em 2020 ~37Bi de dispositivos serão capazes de conectar com
API";
1.
API First
O que é uma abordagem API
First?
API First
× Conceber sua API como sendo o
primeiro elemento da sua estratégia de
produto ou serviço;
× Significa construir a API a partir do
zero para ser consumido da melhor
maneira para os seus clientes;
16
#1 Sua API é a
primeira interface
do usuário com a
aplicação
17
18
#2 Sua API é
concebida
primeiro, antes da
implementação
19
#3 Sua API deve
ser bem descrita
20
O uso de Hypermedia links permite
descobrir outros recursos presentes na
API.
APIs auto-
descritivas
21
3.
Adoção de API First
com OAS
How hard can it be?
Diretrizes
23
Planejamento
Como sua organização ou time planejam essa nova abordagem?
Identifique quem são seus APIs stakeholders;
Identifique quem são seus API customers;
Organize o time de governança;
Estabeleça um processo que seja repetível, realístico e leve;
Processo Paypal
24
https://www.infoq.com/articles/paypal-api-first-part1/
Diretrizes
25
Por que?
Quanto mais APIs são adicioanadas, é importante
garantir que elas serão consistentes entre elas;
APIs que tem padrões comuns serão mais fáceis de
integrá-las;
Novas APIs não precisa reinventar a roda;
Diretrizes
26
• Use substantivos não verbos
• Ex:
• GET /products
• GET /getProducts
• Use parâmetros no path ou query string
• Ex:
• GET /products/{id}
• GET /productsById
• PUT ou PATCH ? 27
Guidelines - Exemplos
• Versione suas APIs;
• Paginação;
• Ex: /products?limit=25&offset=50
• Indique quais formatos sua API suporta
• JSON obrigatório;
• Códigos de erro não se resumem a 200 e 500;
• Customize os erros com json
28
Guidelines - Exemplos
29
https://www.openapis.org/
An open source collaborative project of the Linux Foundation
Membros
30
Histórico
31
2010
Swagger
development
2015
SmartBear
acquired
Reverb
Technologies
End 2015
create Open
Api Initiative
2016
Swagger
spec was
renemad to
OpenAPI
Spec (OAS)
2017 Open
API Initiative
released
version 3.0.0
Implementações
32
Ferramentas de baixo nível;
Editores;
Interfaces;
Servidores para mock;
Implementações de back-end;
Implementações para cliente;
Geradores de código;
https://github.com/OAI/OpenAPI-
Specification/blob/master/IMPLEMENTATIONS.md
https://openapi.tools/
Sugestão
33
API design;
Plataforma de documentação;
Desenhada para times colaborarem de forma consistente e
disciplinada na elaboração de APIs;
Place your screenshot here
34
Desktop project
Show and explain
your web, app or
software projects
using these gadget
templates.
35
https://swagger.io/specification/
OpenAPI Specification
• Especifica como descrever sua API;
• API significa coleção de requisições;
• Qual servidor?
• Qual segurança?
• Quais requisições estão disponíveis na API?
• Quais dados de entrada são esperados em uma
requisição?
• Quais dados de saída são esperados em uma
requisição?
36
Open API Spec
• Descrita em YAML ou JSON;
• Correntemente na versão 3.0.2;
• Permite gerar documentação
• Elementos description;
• Elementos example e examples;
• Aceita markdown;
37
Open API Spec
• https://github.com/OAI/OpenAPI-
Specification/blob/master/examples/v3.0/petstore
.yaml
38
Open API Spec - Exemplo
39
40
Open API Spec - Exemplo
Obrigado!
raphaufrj@gmail.com
https://www.linkedin.com/in/raphaelrodrigues2
41

Mais conteúdo relacionado

Mais procurados

Automatizando uma app Híbrida
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app HíbridaElias Nogueira
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Servicetdc-globalcode
 
Desenvolvendo Windows Store Apps
Desenvolvendo Windows Store AppsDesenvolvendo Windows Store Apps
Desenvolvendo Windows Store AppsThiago Coelho
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...tdc-globalcode
 
Desenvolvimento Mobile: Híbrido x Nativo
Desenvolvimento Mobile: Híbrido x NativoDesenvolvimento Mobile: Híbrido x Nativo
Desenvolvimento Mobile: Híbrido x NativoLetticia Nicoli
 
Como testar sua aplicação Android e iOS: uma abordagem prática
Como testar sua aplicação Android e iOS: uma abordagem práticaComo testar sua aplicação Android e iOS: uma abordagem prática
Como testar sua aplicação Android e iOS: uma abordagem práticaElias Nogueira
 
Automatizando uma app Híbrida
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app HíbridaElias Nogueira
 
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...Agile Trends
 
Developer Experience - Escalando Negócios com a melhor experiência ao desenvo...
Developer Experience - Escalando Negócios com a melhor experiência ao desenvo...Developer Experience - Escalando Negócios com a melhor experiência ao desenvo...
Developer Experience - Escalando Negócios com a melhor experiência ao desenvo...David Ruiz
 
Teste sua app e aumente as chances de mantê-la no mercado
Teste sua app e aumente as chances de mantê-la no mercadoTeste sua app e aumente as chances de mantê-la no mercado
Teste sua app e aumente as chances de mantê-la no mercadoElias Nogueira
 
MLExperience - Matías Gualino
MLExperience - Matías GualinoMLExperience - Matías Gualino
MLExperience - Matías GualinoMatii Gualino
 
No code – Caso Prático no App Inventor - BroTrip
No code – Caso Prático no App Inventor - BroTripNo code – Caso Prático no App Inventor - BroTrip
No code – Caso Prático no App Inventor - BroTripeurosigdoc acm
 
Testes de UI (para não especialisas) com CodeceptJS
Testes de UI (para não especialisas) com CodeceptJSTestes de UI (para não especialisas) com CodeceptJS
Testes de UI (para não especialisas) com CodeceptJSRafael de Paula Souza
 
Integrando ux à metodologia ágil
Integrando ux à metodologia ágilIntegrando ux à metodologia ágil
Integrando ux à metodologia ágilSimone Beltrame
 

Mais procurados (19)

Programação Funcional usando F#
Programação Funcional usando F#Programação Funcional usando F#
Programação Funcional usando F#
 
Automatizando uma app Híbrida
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app Híbrida
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
 
Desenvolvendo Windows Store Apps
Desenvolvendo Windows Store AppsDesenvolvendo Windows Store Apps
Desenvolvendo Windows Store Apps
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
 
Desenvolvimento Mobile: Híbrido x Nativo
Desenvolvimento Mobile: Híbrido x NativoDesenvolvimento Mobile: Híbrido x Nativo
Desenvolvimento Mobile: Híbrido x Nativo
 
Xamarin UI Test + Specflow TDC
Xamarin UI Test + Specflow TDCXamarin UI Test + Specflow TDC
Xamarin UI Test + Specflow TDC
 
Como testar sua aplicação Android e iOS: uma abordagem prática
Como testar sua aplicação Android e iOS: uma abordagem práticaComo testar sua aplicação Android e iOS: uma abordagem prática
Como testar sua aplicação Android e iOS: uma abordagem prática
 
Automatizando uma app Híbrida
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app Híbrida
 
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
 
Introdução intel XDK
Introdução intel XDKIntrodução intel XDK
Introdução intel XDK
 
Código limpo: Limites
Código limpo: LimitesCódigo limpo: Limites
Código limpo: Limites
 
Developer Experience - Escalando Negócios com a melhor experiência ao desenvo...
Developer Experience - Escalando Negócios com a melhor experiência ao desenvo...Developer Experience - Escalando Negócios com a melhor experiência ao desenvo...
Developer Experience - Escalando Negócios com a melhor experiência ao desenvo...
 
Teste sua app e aumente as chances de mantê-la no mercado
Teste sua app e aumente as chances de mantê-la no mercadoTeste sua app e aumente as chances de mantê-la no mercado
Teste sua app e aumente as chances de mantê-la no mercado
 
MLExperience - Matías Gualino
MLExperience - Matías GualinoMLExperience - Matías Gualino
MLExperience - Matías Gualino
 
Desenvolvimento Android
Desenvolvimento AndroidDesenvolvimento Android
Desenvolvimento Android
 
No code – Caso Prático no App Inventor - BroTrip
No code – Caso Prático no App Inventor - BroTripNo code – Caso Prático no App Inventor - BroTrip
No code – Caso Prático no App Inventor - BroTrip
 
Testes de UI (para não especialisas) com CodeceptJS
Testes de UI (para não especialisas) com CodeceptJSTestes de UI (para não especialisas) com CodeceptJS
Testes de UI (para não especialisas) com CodeceptJS
 
Integrando ux à metodologia ágil
Integrando ux à metodologia ágilIntegrando ux à metodologia ágil
Integrando ux à metodologia ágil
 

Semelhante a Construindo APIs com OpenAPI Spec e Java

Slide 02 introdução ao code igniter, utilização do bootstrap
Slide 02   introdução ao code igniter, utilização do bootstrap Slide 02   introdução ao code igniter, utilização do bootstrap
Slide 02 introdução ao code igniter, utilização do bootstrap Raniere de Lima
 
Economia das APIs - Uma visão de negócios
Economia das APIs - Uma visão de negóciosEconomia das APIs - Uma visão de negócios
Economia das APIs - Uma visão de negóciosEdgar Silva
 
Desenvolvimento Orientado a API (e extraindo existentes com PHP)
Desenvolvimento Orientado a API (e extraindo existentes com PHP)Desenvolvimento Orientado a API (e extraindo existentes com PHP)
Desenvolvimento Orientado a API (e extraindo existentes com PHP)Flávio Lisboa
 
API management: um aliado para construção de APIs
API management: um aliado para construção de APIsAPI management: um aliado para construção de APIs
API management: um aliado para construção de APIsRafael de Paula Souza
 
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoIntrodução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoRodrigo Reis
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
API - Interface de Programação de Aplicativos
API - Interface de Programação de AplicativosAPI - Interface de Programação de Aplicativos
API - Interface de Programação de AplicativosFelipe J. R. Vieira
 
Open APIs by Sensedia (CIAB 2014)
Open APIs by Sensedia (CIAB 2014)Open APIs by Sensedia (CIAB 2014)
Open APIs by Sensedia (CIAB 2014)CI&T
 
Building APIs Mobile @ the Forum Mobile+
Building APIs Mobile @ the Forum Mobile+Building APIs Mobile @ the Forum Mobile+
Building APIs Mobile @ the Forum Mobile+Kleber Bacili
 
Share Point 2013 - O Que Há De Novo Para Desenvolvedores
Share Point 2013 - O Que Há De Novo Para DesenvolvedoresShare Point 2013 - O Que Há De Novo Para Desenvolvedores
Share Point 2013 - O Que Há De Novo Para DesenvolvedoresHélio Sá Moreira
 
Estratégia api e design
Estratégia api e designEstratégia api e design
Estratégia api e designJeison Barros
 
Repensando o ESB: sua arquitetura SOA, usando APIs
Repensando o ESB: sua arquitetura SOA, usando APIsRepensando o ESB: sua arquitetura SOA, usando APIs
Repensando o ESB: sua arquitetura SOA, usando APIsFábio Rosato
 
APIs Atributos e Tecnologia
APIs Atributos e TecnologiaAPIs Atributos e Tecnologia
APIs Atributos e TecnologiaFábio Rosato
 
Plataformas de Inovação - Criando Conexões
Plataformas de Inovação - Criando ConexõesPlataformas de Inovação - Criando Conexões
Plataformas de Inovação - Criando ConexõesDavid Ruiz
 
Eduardo Rocha - Criando produtos invisíveis
Eduardo Rocha - Criando produtos invisíveis   Eduardo Rocha - Criando produtos invisíveis
Eduardo Rocha - Criando produtos invisíveis Agile Trends
 
259 Club ServiceNow LowCode
259 Club ServiceNow LowCode259 Club ServiceNow LowCode
259 Club ServiceNow LowCodeTiago Macul
 
MVPConf - Azure Functions
MVPConf - Azure FunctionsMVPConf - Azure Functions
MVPConf - Azure FunctionsCDS
 

Semelhante a Construindo APIs com OpenAPI Spec e Java (20)

Slide 02 introdução ao code igniter, utilização do bootstrap
Slide 02   introdução ao code igniter, utilização do bootstrap Slide 02   introdução ao code igniter, utilização do bootstrap
Slide 02 introdução ao code igniter, utilização do bootstrap
 
Economia das APIs - Uma visão de negócios
Economia das APIs - Uma visão de negóciosEconomia das APIs - Uma visão de negócios
Economia das APIs - Uma visão de negócios
 
Transforme suas APIs em Negócio
Transforme suas APIs em NegócioTransforme suas APIs em Negócio
Transforme suas APIs em Negócio
 
Desenvolvimento Orientado a API (e extraindo existentes com PHP)
Desenvolvimento Orientado a API (e extraindo existentes com PHP)Desenvolvimento Orientado a API (e extraindo existentes com PHP)
Desenvolvimento Orientado a API (e extraindo existentes com PHP)
 
API management: um aliado para construção de APIs
API management: um aliado para construção de APIsAPI management: um aliado para construção de APIs
API management: um aliado para construção de APIs
 
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoIntrodução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
API - Interface de Programação de Aplicativos
API - Interface de Programação de AplicativosAPI - Interface de Programação de Aplicativos
API - Interface de Programação de Aplicativos
 
Open APIs by Sensedia (CIAB 2014)
Open APIs by Sensedia (CIAB 2014)Open APIs by Sensedia (CIAB 2014)
Open APIs by Sensedia (CIAB 2014)
 
Building APIs Mobile @ the Forum Mobile+
Building APIs Mobile @ the Forum Mobile+Building APIs Mobile @ the Forum Mobile+
Building APIs Mobile @ the Forum Mobile+
 
Share Point 2013 - O Que Há De Novo Para Desenvolvedores
Share Point 2013 - O Que Há De Novo Para DesenvolvedoresShare Point 2013 - O Que Há De Novo Para Desenvolvedores
Share Point 2013 - O Que Há De Novo Para Desenvolvedores
 
Um pouco sobre APIs
Um pouco sobre APIsUm pouco sobre APIs
Um pouco sobre APIs
 
Apis Abertos
Apis AbertosApis Abertos
Apis Abertos
 
Estratégia api e design
Estratégia api e designEstratégia api e design
Estratégia api e design
 
Repensando o ESB: sua arquitetura SOA, usando APIs
Repensando o ESB: sua arquitetura SOA, usando APIsRepensando o ESB: sua arquitetura SOA, usando APIs
Repensando o ESB: sua arquitetura SOA, usando APIs
 
APIs Atributos e Tecnologia
APIs Atributos e TecnologiaAPIs Atributos e Tecnologia
APIs Atributos e Tecnologia
 
Plataformas de Inovação - Criando Conexões
Plataformas de Inovação - Criando ConexõesPlataformas de Inovação - Criando Conexões
Plataformas de Inovação - Criando Conexões
 
Eduardo Rocha - Criando produtos invisíveis
Eduardo Rocha - Criando produtos invisíveis   Eduardo Rocha - Criando produtos invisíveis
Eduardo Rocha - Criando produtos invisíveis
 
259 Club ServiceNow LowCode
259 Club ServiceNow LowCode259 Club ServiceNow LowCode
259 Club ServiceNow LowCode
 
MVPConf - Azure Functions
MVPConf - Azure FunctionsMVPConf - Azure Functions
MVPConf - Azure Functions
 

Construindo APIs com OpenAPI Spec e Java