Kleber	Bacili	
kleber.bacili@sensedia.com	
@kleberbacili	
Design	de	APIs	RESTful		
–	Seguras,	Escaláveis	e	Interoperáveis	–
Kleber	Bacili	
kleber.bacili@sensedia.com	
@kleberbacili
v  SOA,	Microservices	e	APIs	
v  Projetos	bacaníssimos	
v  Ferramentas	sensacionais	
v  Headquarter	em	Campinas,		
escritórios	em	SP,	Rio	e	EUA
As	APIs	estão	por		
toda	parte…
Startup	BaLlefield	
78%
The	Internet	
of	Things
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
10Dicas	para	a	sua	API	
ser	um	sucesso
Dica	Zero!
Selecione	a	Tecnologia	Adequada	
RESTSOAP vs.
Selecione	a	Tecnologia	Adequada	
JSONXML vs.
and the winners are…
REST + JSON
1Proposta	de	Valor
“Você	pode	até	passar	batom	num	porco,	
mas	ele	conVnuará	sendo	um	porco!”
2Design	RESTful
Coleção	
/pedidos!
Resources	
Elemento	
/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 !
{…}
3Versionamento
THINGS
CHANGE!
v1	
v2	
v3	 v4
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
4Error	Handling
200!
400!
500!
Resultado	OK	
Erro	no	Client	
Erro	no	Server
STATUS	 OK 200!
Mais	informações?	
Vídeo	do	Webinar	
hAp://downloads.sensedia.com/webinar-design-de-apis-resIul
5Segurança
v Acesso	não	autorizado	
v Ataques	
v Privacidade	
v Integridade	
v Disponibilidade
v Acesso	não	autorizado	
v Ataques	
v Privacidade	
v Integridade	
v Disponibilidade
Usuários	 Apps	
Basic	HTTP	 OAuth2	 OpenID	Connect	
Estratégias	de	AutenVcação	/	Autorização	
App	Token
Client	Apps	
APIs	
Rate	LimiVng	Policy	
JSON	Threat	Policy	
Payload	Size	Policy	
IP	Filtering	Policy	
…	
API	Gateway
Os	Fundamentos	da	
Segurança	de	APIs	
WEBINAR
hAp://downloads.sensedia.com/webinar-seguranca-de-apis
6Hypermedia
GET /items?q=macbook+air+new 	
{!
"results" : [ !
{!
"id" : 123,!
"name" : "Macbook Air 2010 LIKE NEW", !
"price" : "499" !
}!
]!
} 	
SEM	
Hypermedia	
HATEOAS	=	Hypermedia	as	the	
Engine	of	Applica;on	State
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" 	
}!
]!
}
7Developers	Portal
Docs	incompletos,	desatualizados,		
estáVcos	e	com	PDFs	de	100	páginas
Gemng		
Started	
www.twilio.com/docs!
desenvolvedores.cnova.com
Documentação		
InteraVva
Exemplos	de		
código	na		
linguagem		
do	developer	
sendgrid.com/docs!
UX	
(Developer	Experience)	
DX
8OVmizações
Caching	
Evite	tráfego	desnecessário	
	Latência	de	rede		
	Sobrecarga	nos	servidores
Filtros	
GET /vendas/v2/pedidos?_status=concluido!
GET /pedidos/123AF15J?_fields=numero,data,valor!
Busca	com	escopo	(subconjuntos):	
Respostas	parciais:
Paginação	
GET /pedidos?_offset=50&_limit=25!
Recomendação:	
Outras	opções:	
Linkedin:			
	
Instagram:		
?start=50&count=25	
?min_id=3091&max_id=3245&count=25
9Confiabilidade
Confiabilidade	Bugs	
Problemas	de	
Performance	
Indisponibilidade	
Mudanças		
(não-planejadas)	
Falta	de	
Suporte
Trace	de	calls,	
Monitoramento,	
Rate	LimiVng,	
Status	Page	e	
Alertas
10Divulgação
Hackathon	&	Open	InnovaVon
1 Developers	Cadastrados:	800+	
	
	
	
2 Apps	Criadas:	300+	
	
	
	
3 Tráfego:	20M	calls	/	15	dias	
	
	
	
4 Eleições	mais	transparentes!
Design	RESTful	2
1 Proposta	de	Valor	
3 Versionamento	
4 Error	Handling	
5 Segurança	
7 Developers	Portal	
6 Hypermedia	
8 OVmizações	
9 Confiabilidade	
10 Divulgação
www.slideshare.net/kleberbacili/
Kleber	Bacili	
kleber.bacili@sensedia.com	
@kleberbacili	
www.slideshare.net/kleberbacili/	
Design	de	APIs	RESTful		
–	Seguras,	Escaláveis	e	Interoperáveis	–

Design APIs Restful, DevWeek Porto Alegre