Sala 2 01 api conceitos gerais - danilo santos

61
Danilo Santos API – CONCEITOS GERAIS Engenheiro de Software do MercadoLivre

description

3º Developers Conference MercadoLibre Brasil

Transcript of Sala 2 01 api conceitos gerais - danilo santos

Page 1: Sala 2 01   api conceitos gerais - danilo santos

Danilo Santos

API – CONCEITOS GERAIS

Engenheiro de Software do MercadoLivre

Page 2: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Agenda

- API- RESTful- JSON- Categorias- Anúncios- Perguntas- Pedidos- Qualificações- Buscas

Page 3: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

O que é uma API?

A - Application

P - Programming

I - Interface

Page 4: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

RESTful

GET

POST

PUT

DELETE

Page 5: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

RESTful - HTTPS

Page 6: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

JSON

Page 7: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

JSON

"A mesma praça… o mesmo banco..."

Page 8: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

JSON

{ "title": "Apple Iphone 5s 16gb 4g Original Promoção", "category_id": "MLB123612", "price": 2000, "currency_id": "BRL", "initial_quantity": 50, "buying_mode": "buy_it_now", "listing_type_id": "gold_premium", "condition": "new", "pictures": { "source": "http://static.hsw.com.br/gif/how-buildings-58.jpg"}, "video_id": null, "descriptions": "item: <strong> Iphone 5s Imperdível!!! </strong>"}

Page 9: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Agenda

- API- RESTful- JSON- Categorias- Anúncios- Perguntas- Pedidos- Qualificações- Buscas

Page 10: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Categorias

Page 11: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Categorias

Page 12: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Categorias

Page 13: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Categorias

Page 14: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Categorias

Page 15: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Categorias

Page 17: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Anúncios

https://api.mercadolibre.com/items

Page 18: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

- Título- Categoria- Preço- Quantidade- Nível de exposição- Imagens- Descrição

POST /items - Cadastrar um anúncio

Page 19: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

POST /items - Cadastrar um anúncio

{ "title": "Apple Iphone 5s 16gb 4g Original Promoção", "category_id": "MLB123612", "price": 2000, "currency_id": "BRL", "initial_quantity": 50, "listing_type_id": "silver", "condition": "new", "pictures": { "source": "http://static.hsw.com.br/gif/how-to-draw-buildings-58.jpg"}, "video_id": null, "descriptions": "item: <strong> Iphone 5s Imperdível!!! </strong>",

JSON enviado:

Page 20: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

POST /items - Cadastrar um anúncio

APPPOST

Page 21: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

POST /items - Cadastrar um anúncio

APPPOST

APP201 Created

Page 22: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

POST /items - Cadastrar um anúncio

{ "id": "MLB568033554", "site_id": "MLB", "title": "Apple Iphone 5s 16gb 4g Desbloqueado Original Promoção", "price": 2179, "currency_id": "BRL", "listing_type_id": "silver", "condition": "new", "permalink": "http://produto.mercadolivre.com.br/MLB-568033554-iphone-5s-original-_JM",

JSON de retorno:

Page 23: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

https://api.mercadolibre.com/items/MLB568033554

PUT /items/:id - Modificar um anúncio

Page 24: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

PUT /items/:id - Modificar um anúncio

{

"title": "Apple Iphone 5s 32gb Promoção",

"price": 1900,

}

JSON enviado:

Page 25: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

APPPUT

PUT /items/:id - Modificar um anúncio

Page 26: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

APPPUT

APP200 Ok

PUT /items/:id - Modificar um anúncio

Page 27: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

{ "id": "MLB568033554", "site_id": "MLB", "title": "Apple Iphone 5s 32gb Promoção", "price": 1900, "currency_id": "BRL", "listing_type_id": "silver", "condition": "new", "permalink": "http://produto.mercadolivre.com.br/MLB-568033554-iphone-5s-original-_JM",

JSON de retorno:

PUT /items/:id - Modificar um anúncio

Page 28: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Campos que podem ser modificados:

PUT /items/:id - Modificar um anúncio

- Título

- Quantidade disponível

- Preço

- Video

- Imagens

- Descrição

- Modo de Envio

Page 29: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Campos que NÃO podem ser modificados após uma venda do produto:

PUT /items/:id - Modificar um anúncio

- Título

- Condição (novo/usado)

- Método de Envio

- Video

- Garantia

Page 30: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Active Paused Closed

PUT /items - Status do anúncio

JSON:

{ "status": "active"}

Page 31: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Active Paused Closed

Relist

POST /items/:id/relist - Republicar um anúncio

https://api.mercadolibre.com/items/MLB568033554/relist

Page 32: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

APPPOST

POST /items/:id/relist - Republicar um anúncio

Page 33: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

APPPOST

POST /items/:id/relist - Republicar um anúncio

{

"listing_type_id": "silver",

"quantity": 99,

"price": 1900

}

Page 34: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

APPPOST

APP201 Created

{ "id": "MLB123456789", "site_id": "MLB", "title": "Apple Iphone 5s 16gb 4g Desbloqueado Original Promoção", "price": 1900, "listing_type_id": "silver",

POST /items/:id/relist - Republicar um anúncio

Page 35: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Perguntas

https://api.mercadolibre.com/questions

Page 36: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

POST /questions - Notificação

APPPOST

Page 37: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

POST /questions - Notificação

{ "user_id": "12345678", "resource": "/questions/123456789", "topic": "questions", "received": "2014-02-04T19:00:04+00:00", "sent": "2014-02-04T19:00:45+00:00"}

APPPOST

Page 38: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

POST /questions - Notificação

APPPOST

APP200 Ok

{ "user_id": "12345678", "resource": "/questions/123456789", "topic": "questions", "received": "2014-02-04T19:00:04+00:00", "sent": "2014-02-04T19:00:45+00:00"}

Page 39: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

https://api.mercadolibre.com/questions/123456789

GET /questions - Consultar uma pergunta

Page 40: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

GET /questions - Consultar uma pergunta

{

"id": 123456789,

"answer": null,

"date_created": "2014-02-04T19:00:04-00:00",

"item_id": "MLB568033554",

"seller_id": 123456789,

"status": "UNANSWERED",

"text": "Quanto tempo de garantia do produto?",

"from": {

"id": 9876543,

"answered_questions": 0

}

}

JSON de retorno:

Page 41: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

POST /answer - Responder uma pergunta

https://api.mercadolibre.com/answer

Page 42: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

POST /answer - Responder uma pergunta

{

"question_id": "123456789",

"text": "Oferecemos garantia de 01 ano"

}

JSON enviado:

Page 43: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

APPPOST

POST /answer - Responder uma pergunta

Page 44: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

APPPOST

APP201 Created

POST /questions - Responder uma pergunta

Page 45: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

DELETE /questions - Excluir uma pergunta

https://api.mercadolibre.com/questions/123456789

Método: DELETE

Page 46: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Pedidos

https://api.mercadolibre.com/orders

Page 47: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

POST /orders - Consultar um pedido

APPPOST

Page 48: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

POST /orders - Consultar um pedido

{ "user_id": "12345678", "resource": "/orders/123456789", "topic": "orders", "received": "2014-02-04T19:00:04+00:00", "sent": "2014-02-04T19:00:45+00:00"}

APPPOST

Page 49: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

POST /orders - Consultar um pedido

{ "user_id": "12345678", "resource": "/orders/123456789", "topic": "orders", "received": "2014-02-04T19:00:04+00:00", "sent": "2014-02-04T19:00:45+00:00"}

APPPOST

APP200 Ok

Page 50: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

GET /orders - Consultar um pedido{ "id": 12345678, "status": "paid", "status_detail": null, "date_created": "2013-05-27T10:01:50.000-04:00", "date_closed": "2013-05-27T10:04:07.000-04:00", "order_items": - [ - { "item": - { "id": "MLB56XXXXX54", "title": "Apple Iphone 5s 32gb Promoção", "variation_id": null, "variation_attributes": [ ], }, "quantity": 1, "unit_price": 1950, "currency_id": "BRL",

Page 51: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

GET /orders - Consultar um pedido

"buyer": - { "id": "60XXXXXX43", "nickname": "CXXXXXXXXXX23", "email": "[email protected]", "phone": - { "area_code": "11", "number": "20XXXXXX28", "extension": null, }, "first_name": "Usuario", "last_name": "Sobrenome", "billing_info": - { "doc_type": "CPF", "doc_number": "29XXXXXXXXXXXX8", }, }

Page 52: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

GET /orders - Consultar um pedido

"payments": - [ - { "id": "59XXXXXX37", "transaction_amount": 1950, "coupon_amount": null, "currency_id": "BRL", "status": "approved", "date_created": "2013-05-27T10:03:46.000-04:00", "date_last_modified": "2013-05-27T10:03:46.000-04:00", }, ],

Page 53: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

GET /orders - Consultar um pedido"shipping": - { "shipping_mode": "custom", "shipment_type": "shipping", "status": "shipped", "currency_id": "BRL", "receiver_address": - { "state": - { "id": "BR-SP", "name": "São Paulo", }, "street_name": null, "city": - { "id": "BR-SP-44", "name": "São Paulo", }, "country": - { "id": "BR", "name": "Brasil",

Page 54: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Qualificações

https://api.mercadolibre.com/orders/1234567/feedback?version=3.0

New API Tutorial: http://developers.mercadolibre.com/feedback/

Page 55: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

POST /orders/:id/feedback - Qualificar o usuário

{

"fulfilled": "true",

"rating": "positive",

"message": "Recomendo a todos do Mercadolivre!"

}

JSON enviado:

Page 56: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

APPPOST

POST /orders/:id/feedback - Qualificar o usuário

Page 57: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

APPPOST

APP201 Created

POST /orders/:id/feedback - Qualificar o usuário

Page 58: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Buscas

Por Keyword:

https://api.mercadolibre.com/sites/MLB/search?q=PlayStation4

Método: GET

Por Category ID:

https://api.mercadolibre.com/sites/MLB/search?category=MLB39328

Por Nickname:

https://api.mercadolibre.com/sites/MLB/search?nickname=$NICKNAME

Por Seller ID:

https://api.mercadolibre.com/sites/MLB/search?seller_id=123456789

Page 59: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Buscas

Por Combinações:

https://api.mercadolibre.com/sites/MLB/search?category_id=MLB118907

&seller_id=30437647&q=PlayStation4

Ordenação:

https://api.mercadolibre.com/sites/MLB/search?q=PlayStation4&sort=price_asc

Paginação:

https://api.mercadolibre.com/sites/MLB/search?q=PlayStation4&offset=100&limit=10

Método: GET

Page 60: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

Perguntas?

Page 61: Sala 2 01   api conceitos gerais - danilo santos

Developer Conference

OBRIGADO!