design apis restful, devweek porto alegre
Post on 23-Jan-2018
514 Views
Preview:
TRANSCRIPT
KleberBacilikleber.bacili@sensedia.com@kleberbacili
DesigndeAPIsRESTful–Seguras,EscaláveiseInteroperáveis–
KleberBacilikleber.bacili@sensedia.com@kleberbacili
v SOA,MicroserviceseAPIs
v Projetosbacaníssimos
v Ferramentassensacionais
v HeadquarteremCampinas,escritóriosemSP,RioeEUA
AsAPIsestãoportodaparte…
StartupBaLlefield
78%
TheInternetofThings
Startups Battlefield
78%
Open API: Plataforma que permite que empresas parceiras criem novas soluções
integradas ao banco (by Sensedia)
API Calls: +280% Outubro 2014/2015 @ Sensedia API Gateway
10 DicasparaasuaAPI
serumsucesso
DicaZero!
SelecioneaTecnologiaAdequada
REST SOAP vs.
SelecioneaTecnologiaAdequada
JSON XML vs.
and the winners are…
REST + JSON
1 PropostadeValor
“Vocêpodeatépassarbatomnumporco,maseleconVnuarásendoumporco!”
2 DesignRESTful
Coleção/pedidos!
ResourcesElemento
/pedidos/{id} !
/getAccount!/getAllAccounts!/createDirectory!/updateGroupName!/findClientById!
RPC?
VERBOS
GET /vendas/pedidos!
POST /clientes/98W3G32K01/enderecos!{…}
PUT /clientes/98W3G32K01/enderecos/1 !{…}
DELETE /users/98W3G32K01/photos !
PATCH /users/98W3G32K01 !{…}
3 Versionamento
THINGS CHANGE!
v1
v2v3 v4
Versionamento
Versão
URI: https://api.mycompany.com/name-of-api/v2/resource !
HTTPouHTTPS
Seudomínio NomedaAPI(opcional)
RecursoseParâmetros
4 ErrorHandling
200 !
400 !
500 !
ResultadoOK
ErronoClient
ErronoServer
STATUS OK 200 !
Maisinformações?
VídeodoWebinar
hAp://downloads.sensedia.com/webinar-design-de-apis-resIul
5 Segurança
v Acessonãoautorizadov Ataquesv Privacidadev Integridadev Disponibilidade
v Acessonãoautorizadov Ataquesv Privacidadev Integridadev Disponibilidade
Usuários Apps
BasicHTTP OAuth2 OpenIDConnect
EstratégiasdeAutenVcação/Autorização
AppToken
ClientApps
APIs
RateLimiVngPolicyJSONThreatPolicyPayloadSizePolicyIPFilteringPolicy…
APIGateway
OsFundamentosdaSegurançadeAPIs
WEBINAR
hAp://downloads.sensedia.com/webinar-seguranca-de-apis
6 Hypermedia
GET /items?q=macbook+air+new { ! "results" : [ ! { ! "id" : 123, ! "name" : "Macbook Air 2010 LIKE NEW", ! "price" : "499" ! } ! ] !}
SEMHypermedia
HATEOAS=HypermediaastheEngineofApplica;onState
COMHypermedia
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" } ! ] !}
7 DevelopersPortal
Docsincompletos,desatualizados,estáVcosecomPDFsde100páginas
GemngStarted
www.twilio.com/docs !
desenvolvedores.cnova.com
DocumentaçãoInteraVva
Exemplosdecódigonalinguagem
dodeveloper
sendgrid.com/docs !
UX
(DeveloperExperience)
DX
8 OVmizações
CachingEvitetráfegodesnecessário
Latênciaderede
Sobrecarganosservidores
FiltrosGET /vendas/v2/pedidos?_status=concluido!
GET /pedidos/123AF15J?_fields=numero,data,valor!
Buscacomescopo(subconjuntos):
Respostasparciais:
PaginaçãoGET /pedidos?_offset=50&_limit=25 !
Recomendação:
Outrasopções:Linkedin:
Instagram:
?start=50&count=25
?min_id=3091&max_id=3245&count=25
9 Confiabilidade
ConfiabilidadeBugs
ProblemasdePerformance
Indisponibilidade
Mudanças(não-planejadas)
FaltadeSuporte
Tracedecalls,Monitoramento,RateLimiVng,StatusPagee
Alertas
10 Divulgação
Hackathon&OpenInnovaVon
1 DevelopersCadastrados:800+2 AppsCriadas:300+3 Tráfego:20Mcalls/15dias4 Eleiçõesmaistransparentes!
DesignRESTful2 1 PropostadeValor
3 Versionamento
4 ErrorHandling5 Segurança
7 DevelopersPortal6 Hypermedia
8 OVmizações
9 Confiabilidade10 Divulgação
www.slideshare.net/kleberbacili/
KleberBacilikleber.bacili@sensedia.com@kleberbacili
www.slideshare.net/kleberbacili/
DesigndeAPIsRESTful–Seguras,EscaláveiseInteroperáveis–
top related