10 Atributos de uma API de Sucesso
-
Upload
kleber-bacili -
Category
Technology
-
view
494 -
download
2
Transcript of 10 Atributos de uma API de Sucesso
![Page 1: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/1.jpg)
Kleber Bacili [email protected] @kleberbacili slideshare.net/kleberbacili
10 atributos de uma API de sucesso Do design RESTful e segurança, a formas de divulgação e engajamento
![Page 3: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/3.jpg)
Agenda
Contextualização
Planejamento e Preparação
Design e Construção
Execução e Engajamento
![Page 4: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/4.jpg)
Contextualização
![Page 5: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/5.jpg)
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
![Page 6: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/6.jpg)
O Tempo todo com o usuário
ComparMlhando tudo com todos
Inundação de dados e contexto
Implantanto e rodando em algum lugar
Source: Gartner (Jun/2012)
The Nexus of Forces
![Page 7: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/7.jpg)
The Internet of Things
![Page 8: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/8.jpg)
![Page 9: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/9.jpg)
10 Atributos de uma API de sucesso
![Page 10: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/10.jpg)
API Strategy
Plan & Prepare
Design & Build
Run & Engage
![Page 11: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/11.jpg)
API Strategy
Plan & Prepare
Design & Build
Run & Engage
Plan & Prepare
![Page 12: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/12.jpg)
As primeiras decisões de design…
![Page 13: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/13.jpg)
Selecione a Tecnologia Adequada
REST SOAP vs.
![Page 14: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/14.jpg)
Selecione a Tecnologia Adequada
JSON XML vs.
![Page 15: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/15.jpg)
and the winners are…
REST + JSON
![Page 16: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/16.jpg)
1 Proposta de Valor
![Page 17: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/17.jpg)
“Você pode até passar batom num porco, mas ele conOnuará sendo um porco!”
![Page 18: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/18.jpg)
API Strategy
Plan & Prepare
Design & Build
Run & Engage
Design &
Build
Muitos projetos; Equipe pequena
Design & Build
![Page 19: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/19.jpg)
2 Design RESTful
![Page 20: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/20.jpg)
REST RepresentaMonal State Transfer EsMlo arquitetural criado por Roy Fielding
RESTful Design que respeita os conceitos REST
![Page 21: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/21.jpg)
Coleção /pedidos!
Resources Elemento
/pedidos/{id} !
![Page 22: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/22.jpg)
/getAccount!/getAllAccounts!/createDirectory!/updateGroupName!/findClientById!
RPC?
![Page 23: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/23.jpg)
GET POST PUT DELETE
![Page 24: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/24.jpg)
Método de Consulta
GET /vendas/pedidos!
GET /checklist/item/4 !
GET !
POST !
PUT !
DELETE !
PATCH !
![Page 25: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/25.jpg)
Método para “Criação”
POST /clientes/98W3G32K01/enderecos!{ ! "endereco": "Av. Brigadeiro Faria Lima", ! "numero": "3800", ! "complemento": "18o. Andar", ! "bairro": "Itaim Bibi", ! "cidade": "São Paulo", ! "estado": "SP", ! "cep": "04538-132" !}
GET !
POST !
PUT !
DELETE !
PATCH !
![Page 26: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/26.jpg)
GET !
POST !
PUT !
DELETE !
PATCH !
Método para “Atualização”
PUT /clientes/98W3G32K01/enderecos/1 !{ ! "endereco": "Av. Brigadeiro Faria Lima", ! "numero": "3820", ! "complemento": "19o. Andar", ! "bairro": "Itaim Bibi", ! "cidade": "São Paulo", ! "estado": "SP", ! "cep": "04538-132" !}
![Page 27: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/27.jpg)
GET !
POST !
PUT !
DELETE !
PATCH !
Método para “Remoção”
DELETE /pedidos/{id} !
DELETE /users/98W3G32K01/photos !
![Page 28: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/28.jpg)
GET !
POST !
PUT !
DELETE !
PATCH !
Método para “Atualização parcial”
PATCH /users/98W3G32K01 !{ ! "email": "[email protected]" !}
PATCH /pedidos/39009186 !{ ! "status": "Cancelado" !}
![Page 29: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/29.jpg)
![Page 30: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/30.jpg)
3 Versionamento
![Page 31: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/31.jpg)
v1 v2 v3 v4 v5 v6 v7
THINGS CHANGE!
![Page 32: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/32.jpg)
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
![Page 33: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/33.jpg)
4 Error Handling
![Page 34: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/34.jpg)
200 !
400 !
500 !
Resultado OK
Erro no Client
Erro no Server
![Page 35: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/35.jpg)
STATUS OK 200 !
![Page 36: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/36.jpg)
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 ! } !] !
![Page 37: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/37.jpg)
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 !} !
![Page 38: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/38.jpg)
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 !} !
![Page 39: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/39.jpg)
200 !!!
400 !!!
500 !
Status & Error Codes
Outros Comuns
401 !!
403 !
404 !!
413 !!
429 !
Unauthorized
Forbidden
Not Found
Request is too Large
Too Many Requests
![Page 40: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/40.jpg)
200 !!!
400 !!!
500 !
Status & Error Codes
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
![Page 41: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/41.jpg)
Mais informações?
Vídeo do Webinar
hdp://downloads.sensedia.com/webinar-‐design-‐de-‐apis-‐resful
![Page 42: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/42.jpg)
5 Segurança
![Page 43: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/43.jpg)
v Acesso não autorizado v Ataques v Sobrecarga v Confidencialidade v Implementações
desastradas de clients
![Page 44: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/44.jpg)
v Acesso não autorizado v Ataques v Sobrecarga v Confidencialidade v Implementações
desastradas de clients
![Page 45: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/45.jpg)
þ Identificar App (?)
þ Identificar Usuário (?)
þ Identificar Device (?)
Identidade e Autorização
![Page 46: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/46.jpg)
HTTPS, sempre!
![Page 47: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/47.jpg)
6 Hypermedia
![Page 48: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/48.jpg)
Hypermedia APIs
*POX = Plain Old XML, Richardson Maturity Model
HATEOAS = Hypermedia as the Engine of ApplicaMon State
![Page 49: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/49.jpg)
GET /items?q=macbook+air+new { ! "results" : [ ! { ! "id" : 123, ! "name" : "Macbook Air 2010 LIKE NEW", ! "price" : "499" ! } ! ] !}
SEM Hypermedia
![Page 50: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/50.jpg)
COM Hypermedia
GET /items?q=macbook+air+new { ! "results" : [ ! { "_links" : [ ! {"rel": "self","uri": "/items/123" }, ! {"rel": "bids","uri": "/items/123/bids" }, ! {"rel": "win","uri": "/items/123/bids?q=win" } ! ], ! "name" : "Macbook Air 2010 LIKE NEW", ! "price" : "499" } ! ] !}
![Page 51: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/51.jpg)
API Strategy
Plan & Prepare
Design & Build
Run & Engage Run & Engage
Muitos projetos; Equipe pequena
Run & Engage
![Page 52: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/52.jpg)
7 Developers Portal
![Page 53: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/53.jpg)
Docs incompletos, desatualizados, estáOcos e com PDFs de 100 páginas
![Page 54: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/54.jpg)
Gehng Started
www.twilio.com/docs !
![Page 55: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/55.jpg)
Documentação InteraOva
desenvolvedores.extra.com.br!
![Page 56: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/56.jpg)
Exemplos de código na linguagem
do developer
sendgrid.com/docs !
![Page 57: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/57.jpg)
8 Self-‐Service
![Page 58: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/58.jpg)
Sign-‐up e Tokens de acesso automáOcos
stripe.com/docs !
![Page 59: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/59.jpg)
REST Console ou Sandbox / Playgroung
dev.transparencia.org.br!
![Page 60: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/60.jpg)
9 Confiabilidade
![Page 61: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/61.jpg)
![Page 62: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/62.jpg)
Confiabilidade Bugs
Problemas de Performance
Indisponibilidade
Mudanças (não-‐planejadas)
Falta de Suporte
![Page 63: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/63.jpg)
www.sensedia.com/br !
Trace de calls, Monitoramento, Rate LimiOng e
Alertas
![Page 64: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/64.jpg)
status.aws.amazon.com!
Status Page, Release Notes,
Blog
![Page 65: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/65.jpg)
Foruns de discussão e Abertura de Ockets
desenvolvedores.extra.com.br!
![Page 66: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/66.jpg)
10 Divulgação
![Page 67: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/67.jpg)
Hackathon & Open InnovaOon
![Page 68: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/68.jpg)
1 Apps criadas: 300+
2 Developers cadastrados: 800+
3 Tráfego: 20M calls / 15 dias
4 Eleições mais transparentes!
![Page 69: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/69.jpg)
API Strategy
Plan & Prepare
Design & Build
Run & Engage
![Page 70: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/70.jpg)
Design RESTful 2 1 Proposta de Valor
3 Versionamento
4 Error Handling 5 Segurança
7 Developers Portal 6 Hypermedia
8 Self-‐Service 9 Confiabilidade
10 Divulgação
![Page 71: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/71.jpg)
www.linkedin.com/groups/API-‐Web-‐Services-‐Brasil-‐5000376 www.meetup.com/API-‐Craoers-‐Brasil/
![Page 72: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/72.jpg)
![Page 73: 10 Atributos de uma API de Sucesso](https://reader034.fdocumentos.tips/reader034/viewer/2022042821/55d5a483bb61ebe84c8b4671/html5/thumbnails/73.jpg)
Kleber Bacili [email protected] @kleberbacili slideshare.net/kleberbacili