SlideShare uma empresa Scribd logo
1 de 33
API do MercadoLivre & Live
Coding (ops)
iMasters 2015 - Vitória
IT Project Manager
Nicolás Coniglio
Engenheiro de Software
Bruno Elia
!
- Quem somos!
- Nascimento da API!
- Considerações de desenho!
Agenda
MercadoLivre - iMasters Vitória
Quem somos
MercadoLivre - iMasters Vitória
#1 e-commerce da América Latina.!
#8 e-commerce do MUNDO.!
120.9M de usuários registrados.!
5.7M de usuários novos em 2014.!
U$1.7B transacionados em 2014.!
29M de produtos vendidos em 2014.!
2,5 produtos vendidos por segundo.
Escalabilidade "PORN"
MercadoLivre - iMasters Vitória
7Gbps de tráfego.!
1.4B hits/dia no Front-End.!
7.2B hits/dia na API.!
1.800 buscas por segundo.!
930TB de dados em base.!
120TB de fotos.
!
- Quem somos!
- Nascimento da API!
- Considerações de desenho!
- Live Coding
Agenda
MercadoLivre - iMasters Vitória
Nossa API nasceu como uma
necessidade interna, muito antes de
ser uma necessidade externa.
Monolítico -> Serviços
MercadoLivre - iMasters Vitória
Control
Performance
Flexibilidade
Escalabilidade
Open Plat
Pressões sobre
o Monolito
● Escalar a equipe
● Múltiplas Telas
● Velocidade de
desenvolvimento
● Abrir a plataforma
MercadoLivre - iMasters Vitória
Células de trabalho
Comemos o mesmo peixe que vendemos
API
Data MercadoLivre
Front-end Mobile Ferramentas
internas
MercadoLivre - iMasters Vitória
Comemos o mesmo peixe que vendemos
API
Data MercadoLivre
Front-end Mobile OpenPlat
MercadoLivre - iMasters Vitória
Ferramentas
internas
!
- Quem somos!
- Nascimento da API!
- Considerações de desenho!
- Live Coding
Agenda
MercadoLivre - iMasters Vitória
- /sites/MLB -> Info do site Brasil!
- /users/154070811 -> Info de um usuário!
- /items/MLB634057159 -> Info de um anúncio!
- /categories/MLB119012 -> Info de uma categoria
Rest sobre HTTP!
!
Descrição da API através de Recursos: https://api.mercadolibre.com...
MercadoLivre - iMasters Vitória
- 201: Object created
- 206: Partially created (o comprador não pagou a totalidade
do pedido ainda)
!
- 401: Unauthorized
- 404: Not found
!
- 500: Internal Server Error
- 504: Not implemented
MercadoLivre - iMasters Vitória
Return codes -> standard HTTP codes
MercadoLivre - iMasters Vitória
Verbos standard HTTP
MercadoLivre - iMasters Vitória
Api auto documentada (Options)
OPTIONS /currencies
MercadoLivre - iMasters Vitória
Pretty print
MercadoLivre - iMasters Vitória
Links navegáveis
MercadoLivre - iMasters Vitória
Desenhar o caso canônico
GET /items/MLB624192891
MercadoLivre - iMasters Vitória
Selection
GET /items/MLB633326522?attributes=title
MercadoLivre - iMasters Vitória
Selection + MultiGet
GET /items?ids=MLB633326522,MLB630699258&attributes=title
Selection e MultiGet são violações ao Rest com custos ocultos:
!
são difíceis de Cachear e de Shardear
MercadoLivre - iMasters Vitória
Autenticação!
!
oAuth 2.0
A aplicação MeLi pode
executar ações em nome do
usuário sem acessar à senha
dele.
GET /users/174994109?access_token=6.....
MercadoLivre - iMasters Vitória
Recursos Públicos!
!
- GET /items/MLB624192891!
- GET /sites/MLB/search?q=ipod!
- GET /categories/MLB119012!
!
!
Recursos Privados!
!
- POST {''} /items/ !
- GET /orders/!
- POST /questions/!
!
MercadoLivre - iMasters Vitória
Access Token
GET /users/174994109?access_token=APP_USR…..
POST /items?access_token=APP_USR…..
GET /orders/123456?access_token=APP_USR…..
Clientes externos podem se subscrever para escutar as
notificações que acontecem no MeLi, por exemplo:
!
Alteração de status de um
- anúncio
- venda
- pergunta
- pagamento
MercadoLivre - iMasters Vitória
Push Notifications
MercadoLivre - iMasters Vitória
Exemplo de notificação
{
"user_id": 1234,
"resource": "/orders/139876",
"topic": "orders",
"received": "2011-10-19T16:38:34.425Z",
"sent" : "2011-10-19T16:39:34.425Z",
}
MercadoLivre - iMasters Vitória
Documentação
http://developers.mercadolibre.com/
- 40 desenvolvedores certificados na região e miles de apps.
- Integram o 30% dos anúncios do Marketplace.
- O 85% dos 500 principais vendedores do MercadoLivre
utilizam uma ferramenta de integração e cobram por isso.
MercadoLivre - iMasters Vitória
Comunidade e monetização
MercadoLivre - iMasters Vitória
Comunidade e monetização
- Equipe de integrações para suporte!
- Plano de parceria!
- Developers site!
- SDKs para todas as linguagens!
- Github!
- Fórum!
- Developers conference!
- Fundo de $10M de dólares para investir em ideias!
MercadoLivre - iMasters Vitória
Obrigado
!
nicolas.coniglio@mercadolibre.com
bruno.elia@mercadolivre.com!
!

Mais conteúdo relacionado

Destaque

Creando Herramientas para Vendedores - Nicolas Coniglio
Creando Herramientas para Vendedores - Nicolas ConiglioCreando Herramientas para Vendedores - Nicolas Coniglio
Creando Herramientas para Vendedores - Nicolas Conigliofsolari
 
12º Ideias na Laje - Apresentação 5.0 // Yeti
12º Ideias na Laje - Apresentação 5.0 // Yeti12º Ideias na Laje - Apresentação 5.0 // Yeti
12º Ideias na Laje - Apresentação 5.0 // YetiIdeias na Laje
 
4º Ideias na Laje - Palestrante Tiago Baeta
4º Ideias na Laje - Palestrante Tiago Baeta4º Ideias na Laje - Palestrante Tiago Baeta
4º Ideias na Laje - Palestrante Tiago BaetaIdeias na Laje
 
7º Ideias na Laje - Palestra Principal // Ricardo Magalhães
7º Ideias na Laje - Palestra Principal // Ricardo Magalhães7º Ideias na Laje - Palestra Principal // Ricardo Magalhães
7º Ideias na Laje - Palestra Principal // Ricardo MagalhãesIdeias na Laje
 
InterCon 2016 - HTTP/2 for Web Application Developers
InterCon 2016 - HTTP/2 for Web Application DevelopersInterCon 2016 - HTTP/2 for Web Application Developers
InterCon 2016 - HTTP/2 for Web Application DevelopersiMasters
 
Projeto E-Commerce Brasil 2011 - Patrocínio
Projeto E-Commerce Brasil 2011 - PatrocínioProjeto E-Commerce Brasil 2011 - Patrocínio
Projeto E-Commerce Brasil 2011 - PatrocínioE-Commerce Brasil
 
Apresentação Mercado Pago - Gestão da Inovação - ESPM 2013
Apresentação Mercado Pago - Gestão da Inovação - ESPM 2013Apresentação Mercado Pago - Gestão da Inovação - ESPM 2013
Apresentação Mercado Pago - Gestão da Inovação - ESPM 2013Ligia Pretel Eimantas
 
Mercado pago
Mercado pagoMercado pago
Mercado pagotecobil
 
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecerInterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouqueceriMasters
 
Mercado Livre 19 de fevereiro de 2014
Mercado Livre 19 de fevereiro de 2014Mercado Livre 19 de fevereiro de 2014
Mercado Livre 19 de fevereiro de 2014Startupi
 
Crucigrama sobre el cuerpo humano
Crucigrama sobre el cuerpo humanoCrucigrama sobre el cuerpo humano
Crucigrama sobre el cuerpo humanosamuel2133
 
Camarote Bar Brahma 2009
Camarote Bar Brahma 2009Camarote Bar Brahma 2009
Camarote Bar Brahma 2009Welcome Luiz
 
Crucigrama sobre el cuerpo humano en ingles
Crucigrama  sobre el cuerpo humano en ingles Crucigrama  sobre el cuerpo humano en ingles
Crucigrama sobre el cuerpo humano en ingles GranadosGeraldine
 
MercadoLivre Envios - MeliDevConf 2013 - SP
MercadoLivre Envios  - MeliDevConf 2013 - SPMercadoLivre Envios  - MeliDevConf 2013 - SP
MercadoLivre Envios - MeliDevConf 2013 - SPmelidevelopers
 

Destaque (20)

Creando Herramientas para Vendedores - Nicolas Coniglio
Creando Herramientas para Vendedores - Nicolas ConiglioCreando Herramientas para Vendedores - Nicolas Coniglio
Creando Herramientas para Vendedores - Nicolas Coniglio
 
12º Ideias na Laje - Apresentação 5.0 // Yeti
12º Ideias na Laje - Apresentação 5.0 // Yeti12º Ideias na Laje - Apresentação 5.0 // Yeti
12º Ideias na Laje - Apresentação 5.0 // Yeti
 
Imasters
ImastersImasters
Imasters
 
4º Ideias na Laje - Palestrante Tiago Baeta
4º Ideias na Laje - Palestrante Tiago Baeta4º Ideias na Laje - Palestrante Tiago Baeta
4º Ideias na Laje - Palestrante Tiago Baeta
 
209 Dia do Baralho - COPAG
209   Dia do Baralho - COPAG209   Dia do Baralho - COPAG
209 Dia do Baralho - COPAG
 
7º Ideias na Laje - Palestra Principal // Ricardo Magalhães
7º Ideias na Laje - Palestra Principal // Ricardo Magalhães7º Ideias na Laje - Palestra Principal // Ricardo Magalhães
7º Ideias na Laje - Palestra Principal // Ricardo Magalhães
 
CAIXA - Camarote X
CAIXA - Camarote XCAIXA - Camarote X
CAIXA - Camarote X
 
InterCon 2016 - HTTP/2 for Web Application Developers
InterCon 2016 - HTTP/2 for Web Application DevelopersInterCon 2016 - HTTP/2 for Web Application Developers
InterCon 2016 - HTTP/2 for Web Application Developers
 
Projeto E-Commerce Brasil 2011 - Patrocínio
Projeto E-Commerce Brasil 2011 - PatrocínioProjeto E-Commerce Brasil 2011 - Patrocínio
Projeto E-Commerce Brasil 2011 - Patrocínio
 
Apresentação Mercado Pago - Gestão da Inovação - ESPM 2013
Apresentação Mercado Pago - Gestão da Inovação - ESPM 2013Apresentação Mercado Pago - Gestão da Inovação - ESPM 2013
Apresentação Mercado Pago - Gestão da Inovação - ESPM 2013
 
MercadoPago
MercadoPagoMercadoPago
MercadoPago
 
Mercado pago
Mercado pagoMercado pago
Mercado pago
 
Versao 1.70
Versao 1.70Versao 1.70
Versao 1.70
 
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecerInterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
 
Palestra macrotendencias
Palestra macrotendenciasPalestra macrotendencias
Palestra macrotendencias
 
Mercado Livre 19 de fevereiro de 2014
Mercado Livre 19 de fevereiro de 2014Mercado Livre 19 de fevereiro de 2014
Mercado Livre 19 de fevereiro de 2014
 
Crucigrama sobre el cuerpo humano
Crucigrama sobre el cuerpo humanoCrucigrama sobre el cuerpo humano
Crucigrama sobre el cuerpo humano
 
Camarote Bar Brahma 2009
Camarote Bar Brahma 2009Camarote Bar Brahma 2009
Camarote Bar Brahma 2009
 
Crucigrama sobre el cuerpo humano en ingles
Crucigrama  sobre el cuerpo humano en ingles Crucigrama  sobre el cuerpo humano en ingles
Crucigrama sobre el cuerpo humano en ingles
 
MercadoLivre Envios - MeliDevConf 2013 - SP
MercadoLivre Envios  - MeliDevConf 2013 - SPMercadoLivre Envios  - MeliDevConf 2013 - SP
MercadoLivre Envios - MeliDevConf 2013 - SP
 

Mais de iMasters

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroiMasters
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesiMasters
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesiMasters
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...iMasters
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesiMasters
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...iMasters
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsiMasters
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...iMasters
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudiMasters
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza LeiteiMasters
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesiMasters
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosiMasters
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeiMasters
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle MonteiroiMasters
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujoriMasters
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaiMasters
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiiMasters
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...iMasters
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisiMasters
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoiMasters
 

Mais de iMasters (20)

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
 

Os principais recursos da API do MercadoLivre e o desenvolvimento de uma app em tempo real, por Nicolás Coniglio e Bruno Elia

  • 1.
  • 2. API do MercadoLivre & Live Coding (ops) iMasters 2015 - Vitória IT Project Manager Nicolás Coniglio Engenheiro de Software Bruno Elia
  • 3. ! - Quem somos! - Nascimento da API! - Considerações de desenho! Agenda MercadoLivre - iMasters Vitória
  • 4. Quem somos MercadoLivre - iMasters Vitória #1 e-commerce da América Latina.! #8 e-commerce do MUNDO.! 120.9M de usuários registrados.! 5.7M de usuários novos em 2014.! U$1.7B transacionados em 2014.! 29M de produtos vendidos em 2014.! 2,5 produtos vendidos por segundo.
  • 5. Escalabilidade "PORN" MercadoLivre - iMasters Vitória 7Gbps de tráfego.! 1.4B hits/dia no Front-End.! 7.2B hits/dia na API.! 1.800 buscas por segundo.! 930TB de dados em base.! 120TB de fotos.
  • 6. ! - Quem somos! - Nascimento da API! - Considerações de desenho! - Live Coding Agenda MercadoLivre - iMasters Vitória
  • 7. Nossa API nasceu como uma necessidade interna, muito antes de ser uma necessidade externa.
  • 8. Monolítico -> Serviços MercadoLivre - iMasters Vitória Control Performance Flexibilidade Escalabilidade Open Plat
  • 9. Pressões sobre o Monolito ● Escalar a equipe ● Múltiplas Telas ● Velocidade de desenvolvimento ● Abrir a plataforma
  • 10. MercadoLivre - iMasters Vitória Células de trabalho
  • 11. Comemos o mesmo peixe que vendemos API Data MercadoLivre Front-end Mobile Ferramentas internas MercadoLivre - iMasters Vitória
  • 12. Comemos o mesmo peixe que vendemos API Data MercadoLivre Front-end Mobile OpenPlat MercadoLivre - iMasters Vitória Ferramentas internas
  • 13. ! - Quem somos! - Nascimento da API! - Considerações de desenho! - Live Coding Agenda MercadoLivre - iMasters Vitória
  • 14. - /sites/MLB -> Info do site Brasil! - /users/154070811 -> Info de um usuário! - /items/MLB634057159 -> Info de um anúncio! - /categories/MLB119012 -> Info de uma categoria Rest sobre HTTP! ! Descrição da API através de Recursos: https://api.mercadolibre.com... MercadoLivre - iMasters Vitória
  • 15. - 201: Object created - 206: Partially created (o comprador não pagou a totalidade do pedido ainda) ! - 401: Unauthorized - 404: Not found ! - 500: Internal Server Error - 504: Not implemented MercadoLivre - iMasters Vitória Return codes -> standard HTTP codes
  • 16. MercadoLivre - iMasters Vitória Verbos standard HTTP
  • 17. MercadoLivre - iMasters Vitória Api auto documentada (Options) OPTIONS /currencies
  • 18. MercadoLivre - iMasters Vitória Pretty print
  • 19. MercadoLivre - iMasters Vitória Links navegáveis
  • 20. MercadoLivre - iMasters Vitória Desenhar o caso canônico GET /items/MLB624192891
  • 21. MercadoLivre - iMasters Vitória Selection GET /items/MLB633326522?attributes=title
  • 22. MercadoLivre - iMasters Vitória Selection + MultiGet GET /items?ids=MLB633326522,MLB630699258&attributes=title
  • 23. Selection e MultiGet são violações ao Rest com custos ocultos: ! são difíceis de Cachear e de Shardear
  • 24.
  • 25. MercadoLivre - iMasters Vitória Autenticação! ! oAuth 2.0 A aplicação MeLi pode executar ações em nome do usuário sem acessar à senha dele. GET /users/174994109?access_token=6.....
  • 26. MercadoLivre - iMasters Vitória Recursos Públicos! ! - GET /items/MLB624192891! - GET /sites/MLB/search?q=ipod! - GET /categories/MLB119012! ! ! Recursos Privados! ! - POST {''} /items/ ! - GET /orders/! - POST /questions/! !
  • 27. MercadoLivre - iMasters Vitória Access Token GET /users/174994109?access_token=APP_USR….. POST /items?access_token=APP_USR….. GET /orders/123456?access_token=APP_USR…..
  • 28. Clientes externos podem se subscrever para escutar as notificações que acontecem no MeLi, por exemplo: ! Alteração de status de um - anúncio - venda - pergunta - pagamento MercadoLivre - iMasters Vitória Push Notifications
  • 29. MercadoLivre - iMasters Vitória Exemplo de notificação { "user_id": 1234, "resource": "/orders/139876", "topic": "orders", "received": "2011-10-19T16:38:34.425Z", "sent" : "2011-10-19T16:39:34.425Z", }
  • 30. MercadoLivre - iMasters Vitória Documentação http://developers.mercadolibre.com/
  • 31. - 40 desenvolvedores certificados na região e miles de apps. - Integram o 30% dos anúncios do Marketplace. - O 85% dos 500 principais vendedores do MercadoLivre utilizam uma ferramenta de integração e cobram por isso. MercadoLivre - iMasters Vitória Comunidade e monetização
  • 32. MercadoLivre - iMasters Vitória Comunidade e monetização - Equipe de integrações para suporte! - Plano de parceria! - Developers site! - SDKs para todas as linguagens! - Github! - Fórum! - Developers conference! - Fundo de $10M de dólares para investir em ideias!
  • 33. MercadoLivre - iMasters Vitória Obrigado ! nicolas.coniglio@mercadolibre.com bruno.elia@mercadolivre.com! !