1) O documento discute estratégias e abordagens para o desenvolvimento e design de APIs, incluindo API First, REST, status codes e otimização.
2) É destacada a importância de APIs bem projetadas para integrações e transformações digitais, assim como a necessidade de focar na experiência do desenvolvedor.
3) São apresentados casos de uso comuns de APIs em plataformas, ecossistemas, clientes e dispositivos múltiplos.
2. José Vahl
Gerente de Tecnologia
Ciclista, fotógrafo,
cervejeiro, gerente de
tecnologia e APIs addicted
jose.vahl@sensedia.com
@josevahl
Petterson Andrade
Arquiteto de Software
Palestrante, nerd,
arquiteto de software,
cruzeirense e confia na
tecnologia
petterson.andrade@sensedia.com
@pett4j
3. Applications Services
Enabling Digital Transformation
Quick Facts
Founded
in 2007
Campinas,
São Paulo,
Rio de Janeiro
and
US Incorporated
Strong SOA Background
(Gartner MQ SOA Gov, 2009)
+
● Services & API Strategy
● Architectural Solution
● API Platform
29. +
The Magnet:
- Design of Incentives
- Pricing Models
- Reputation Systems
The Matchmaker:
- Rich Data Collection
- Data-oriented Match
- Curation (the best and the
rest)
Gravity
Flow
Connection
The Toolbox:
- Simple
- Open
- Agile
33. +
Foco na informação ou na integração?
● Serviços projetados para
uso interno
● Código Legado
● SOAP Services
● Tabelas de Banco
API
(design problemático)
Foco na
informação
Foco na
integração
info:
version: 0.0.1
title: My API História para
contar
62. API Portal
Developers
https://developers.[you].com
Powered by
❖ Introdução, tutoriais e
exemplos de códigos
❖ Self-service Signup
❖ Documentação interativa
(API Browsing)
❖ Forum, Blog & Dev support
❖ Testes facilitados (Sandbox)
❖ Dev. Dashboard
API Developers Portal
Documentação
70. Status Codes
200
400
500
Resultado OK
Erro no Cliente
Erro no Servidor
201 Criado
202 Aceito
401 Não Autorizado
405 Operação não permitida
413 Request muito grande
429 Muitas requisições
503 Servidor não disponível
204 Sem Conteúdo
72. 200
400
500
Status &
Error Codes
200 OK
GET /candidatos?estado=SP&partido=PP
200 OK
[
{
"id": "1532962",
"apelido": "PAULO MALUF",
"nome": "PAULO SALIM MALUF",
"numero": "1111",
"cargo": "Deputado Federal",
"estado": "SP",
"partido": "PP",
"reeleicao": true
}
]
73. 200
400
500
Status &
Error Codes
201 Created
POST /items/1234/bids
{
"amount" : 602.99
}
201 Created
Location: /items/1234/bids/100001
{
"amount" : 602.99,
"current_bid" : 510,
"winning" : true
}
74. 200
400
500
Status &
Error Codes
400 Bad Request
GET /candidatos
400 Bad Request
{
"status" : 400,
"code" : 40377,
"message" : "Parâmetro 'estado' não
pode ser nulo ou vazio"
"more" : https://dev.empresa.com/errors/40377
}
82. Marketplace API
❖ Consulta estoque
❖ Cálculo de frete
❖ Novo pedido recebido
https://api.mywebstore.com/v1/estoque
https://api.mywebstore.com/v1/frete
https://api.mywebstore.com/v1/pedido
Chamadas Reversas:
83. Hypermedia
*POX = Plain Old XML, Richardson Maturity Model
HATEOAS = Hypermedia as the
Engine of Application State
http://martinfowler.com/articles/richardsonMaturityModel.html
90. Básico
Intermediário
Crítico
❖ Quanto você conhece
dos Client Apps?
❖ As APIs dão acesso a
informações sensíveis?
❖ As APIs alteram dados
importantes?
API totalmente pública,
potencialmente centenas de
Apps externos
Alguns Apps externos de
parceiros bem conhecidos
Somente Apps desenvolvidos
pela própria empresa
91. Básico
Intermediário
Crítico
Registros médicos, transações
financeiras ou dados vitais ao
negócio
Informações sociais,
Internet das coisas
Informações acessórias não
relacionadas a usuários
❖ Quanto você conhece
dos Client Apps?
❖ As APIs dão acesso a
informações sensíveis?
❖ As APIs alteram dados
importantes?
92. Básico
Intermediário
Crítico
Todas as operações (inclusive
DELETEs) em elementos e
coleções de recursos
GETs e alguns POSTs e PUTs em
recursos não vitais
Somente GETs
❖ Quanto você conhece
dos Client Apps?
❖ As APIs dão acesso a
informações sensíveis?
❖ As APIs alteram dados
importantes?
94. Segurança
❖ Agrupamento de elementos com
responsabilidades semelhantes
❖ Simplificação de regras de negócio
Separation of
CONCERNS
Autenticação
Autorização
Privacidade
Disponibilidade
Auditoria
Integridade
108. +
Silex
- Está entre os mais rápidos micro
frameworks de REST PHP
- Baseado nos componentes
Symphony
- Boa documentação e bom suporte
da comunidade.
109. +
Slim
- Está entre os mais rápidos micro
frameworks de REST PHP
- Boa documentação
- Integrado com implementações de
terceiros
110. +
Lumen
- Baseado no Laravel
- Boa documentação
- Não tão rápido quanto o Slim ou
Silex
111. +
Phalcon
- O mais rápido dos frameworks
REST PHP
- Extremamente otimizado e modular
- Não tão rápido quanto o Slim ou
Silex
- Boa documentação
115. +
Visão de negócio
- Hub mudanças
- Juntar as duas pontas:
- Clientes
- Transportadoras
- Compartilhar mudanças / cargas
116. - Economia compartilhada
- Legislação
- Mercado estabelecido
- Barreira de entrada: Base de usuários
+
Oportunidades e Desafios
117. - API como estratégia fundamental
- Api com foco no cliente: Clientes
acessando apps
- Api com foco no parceiro: Transportadoras
e donos de caminhões
- Múltiplos dispositivos
+
Estratégia de API First
126. +
Take Away
A integração do seu sistema
deve ser pensada a partir do
dia zero!
APIs estão nas
agendas e no dia a dia
Quanto mais você
investir no desenho das
APIs, mais atalhos
poderá pegar no futuro