Apresentação realizada no QCon Rio, dia 25/Setembro/2014.
#QConRio #APIs #Sensedia
Descrição:
Impulsionadas pelo aumento da mobilidade, cloud, mídias sociais e internet das coisas, as APIs estão realmente entrando no dia-a-dia das equipes de desenvolvimento – seja de startups que estão começando a desenvolver seus produtos; seja de grandes empresas, que carregam um grande legado de sistemas e investimentos realizados em middlewares de integração.
Diversas razões podem levar uma empresa ou desenvolvedor a expor APIs. Mas seja qual for o motivo, alguns cuidados são imprescindíveis para que tragam os resultados esperados. Entretanto, muitas implementações de APIs RESTful não têm levado em consideração princípios básicos de design.
Nessa palestra apresentamos atributos de APIs de sucesso, incluindo a proposição de valor de uma API e o entendimento do público-alvo, assim como o design RESTful de resources (URIs, verbos, filtros e paginação). Também são explorados modelos de segurança e o padrão OAuth 2.0; versionamento e formas de documentação; caching de requisições; hipermídia e callbacks; padronização de erros e status codes; controles e medidas recomendadas; além do "onboarding", que inclui divulgação e formas de engajamento.
Boas práticas de programação com Object Calisthenics
10 Atributos de uma API de Sucesso
1. Kleber
Bacili
kleber.bacili@sensedia.com
@kleberbacili
slideshare.net/kleberbacili
10
atributos
de
uma
API
de
sucesso
Do
design
RESTful
e
segurança,
a
formas
de
divulgação
e
engajamento
5. v Design,
Exposição,
Gerenciamento
e
Engajamento
em
APIs
v Headquarter
em
Campinas,
escritórios
em
Sampa,
Rio
e
Philly
v Classificados
como
Visionários
no
Quadrante
Mágico
do
Gartner
(*)
Magic
Quadrant
for
Integrated
SOA
Governance
Technology
Sets,
2009
6. O
Tempo
todo
com
o
usuário
ComparMlhando
tudo
com
todos
The
Nexus
of
Forces
Inundação
de
dados
e
contexto
Implantanto
e
rodando
em
algum
lugar
Source:
Gartner
(Jun/2012)
32. Versionamento
Versão
URI:
https://api.mycompany.com/name-of-api/v2/resource!
HTTP
ou
HTTPS
Seu
domínio
Nome
da
API
(opcional)
Recursos
e
Parâmetros
Outras
alternaMvas:
• Twilio:
/2010-‐04-‐01/Accounts/
• Salesforce.com:
/services/data/v20.0/sobjects/Account
38. Status
&
Error
Codes
200!!!
400!!!
500!
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!
}!
39. Status
&
Error
Codes
200!!!
400!!!
500!
Outros
Comuns
401!
!
403!
404!
!
413!
!
429!
Unauthorized
Forbidden
Not
Found
Request
is
too
Large
Too
Many
Requests
40. Status
&
Error
Codes
200!!!
400!!!
500!
500
Internal
Server
Error
PUT /vendas/v1/pedidos/9940382!
{!
”status" : canceled !
}
500 Internal Server Error!
{!
"status" : 500,!
"message": ”Oops. Algo saiu errado”!
} !
hMp://en.wikipedia.org/wiki/List_of_HTTP_status_codes
41. Mais
informações?
Vídeo
do
Webinar
hdp://downloads.sensedia.com/webinar-‐design-‐de-‐apis-‐resful