Design APIs Restful, DevWeek Porto Alegre

Post on 23-Jan-2018

514 views 3 download

Transcript of Design APIs Restful, DevWeek Porto Alegre

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–