target mail.ru api v2

32
Target.Mail.Ru API v2 Александр Покатилов

Upload: dmitry-shkolnikov

Post on 14-Jul-2015

306 views

Category:

Technology


8 download

TRANSCRIPT

Page 1: Target mail.ru API v2

Target.Mail.Ru API v2Александр Покатилов

Page 2: Target mail.ru API v2

API v1неконсистентностьнедостаточная документациялегаси-кодпроблемы с производительностью

Page 3: Target mail.ru API v2

REST

Page 4: Target mail.ru API v2

РесурсПолучение, обновление и удаление ресурса:

GET /api/v2/campaigns/123.json HTTP/1.1POST /api/v2/campaigns/123.json HTTP/1.1DELETE /api/v2/campaigns/123.json HTTP/1.1

Page 5: Target mail.ru API v2

Коллекция ресурсовПолучение списка ресурсов, создание ресурса:

GET /api/v2/campaigns.json HTTP/1.1POST /api/v2/campaigns.json HTTP/1.1

Page 6: Target mail.ru API v2

Указание полей ресурсаGET /api/v2/campaigns/123.json?fields=id,name HTTP/1.1

{ "id": 123, "name": "test"}

Page 7: Target mail.ru API v2

Связанные ресурсыПо умолчанию не отдаются.

Page 8: Target mail.ru API v2

Запрос связанного ресурса package:GET /api/v2/campaigns/123.json?fields=id,package HTTP/1.1

{ "id": 123, "package": { "id": 83, "name": "multiple_external_90_75_ppc", "description": "Внешние ссылки, клики" }}

Page 9: Target mail.ru API v2

Указание полей для связанных ресурсов:GET /api/v2/campaigns/123.json?fields=id,name,package__name HTTP/1.1

{ "id": 123, "name": "test", "package": { "name": "multiple_external_90_75_ppc" }}

Page 10: Target mail.ru API v2

Last-ModifiedЗапрос:

GET /api/v2/campaigns/123.json?fields=id,name HTTP/1.1

Ответ:HTTP/1.1 200 OKLast-Modified: Tue, 20 Nov 2014 04:58:08 GMT

{ "id": 123, "name": "test",}

Page 11: Target mail.ru API v2

If-Modified-SinceЗапрос:

GET /api/v2/campaigns/123.json?fields=id,name HTTP/1.1If-Modified-Since: Tue, 20 Nov 2014 04:58:08 GMT

Ответ:HTTP/1.1 304 Not Modified

Page 12: Target mail.ru API v2

ОшибкиЗапрос:

GET /api/v2/campaigns/123.json?fields=id,name HTTP/1.1Accept-Language: ru

Ответ:HTTP/1.1 404 Not Found

{ "code": "not_found", "message": "Запрашиваемый ресурс не найден"}

Page 13: Target mail.ru API v2

Получение коллекцииУказание полей ресурса + пагинация и фильтры:

GET /api/v2/campaigns.json?fields=id,name&offset=60&status=active HTTP/1.1

{ "items": [ { "id": 123, "name": "test" }, { "id": 456, "name": "test #2" } ], "count": 100, "offset": 60, "limit": 20}

Page 14: Target mail.ru API v2

Указание конкретных ресурсов:GET /api/v2/campaigns/123,456.json?fields=id,name HTTP/1.1

{ "items": [ { "id": 123, "name": "test" }, { "id": 456, "name": "test #2" } ], "count": 100, "offset": 60, "limit": 20}

Page 15: Target mail.ru API v2

Создание ресурсаЗапрос:

POST /api/v2/campaigns.json HTTP/1.1

{ "name": "Test campaign", "package": {"id": 18}, "targetings": { "regions": [188], "sex": "MF", "age": [20, 21], "pads": [{"id": 5206}] }}

Page 16: Target mail.ru API v2

Ответ:HTTP/1.1 201 CreatedLocation: http://target.mail.ru/api/v2/campaigns/123.jsonLast-Modified: Tue, 20 Nov 2014 04:58:08 GMT

{ "id": 123}

Page 17: Target mail.ru API v2

Создание ресурса #2С указанием полей:

POST /api/v2/campaigns.json?fields=id,name HTTP/1.1

{ "name": "Test campaign", "package": {"id": 18}, "targetings": { "regions": [188], "sex": "MF", "age": [20, 21], "pads": [{"id": 5206}] }}

Page 18: Target mail.ru API v2

Ответ:HTTP/1.1 200 OKLast-Modified: Tue, 20 Nov 2014 04:58:08 GMT

{ "id": 123, "name": "Test campaign"}

Page 19: Target mail.ru API v2

Создание ресурсовЗапрос:

POST /api/v2/campaigns.json HTTP/1.1

[ { "name": "Test campaign", "package": {"id": 18}, "targetings": { "regions": [188], "sex": "MF", "age": [20, 21], "pads": [{"id": 5206}] } }, ...]

Page 20: Target mail.ru API v2

Ответ:HTTP/1.1 201 CreatedLocation: https://target.mail.ru/api/v2/campaigns/123,456.json

[ {"id": 123}, {"id": 456}]

Page 21: Target mail.ru API v2

ОшибкиHTTP/1.1 400 Bad Request

{ "package": { "id": { "code": "unknown_resource", "message": "Несуществующий пакет" } }, "name": { "code": "required", "message": "Поле обязательно для заполнения" }}

Page 22: Target mail.ru API v2

HTTP/1.1 400 Bad Request

{ "banners": [ {}, { "title": { "code": "invalid_chars", "message": "Использованы запрещённые символы", "allowed": "abcdef" } } ]}

Page 23: Target mail.ru API v2

Обновление ресурсаЗапрос:

POST /api/v2/campaigns/123.json HTTP/1.1

{ "name": "Test campaign"}

Ответ:HTTP/1.1 204 No ContentLast-Modified: Tue, 20 Nov 2014 04:58:08 GMT

Page 24: Target mail.ru API v2

Обновление ресурса #2Запрос с указанием полей:

POST /api/v2/campaigns/123.json?fieds=id,name HTTP/1.1

{ "name": "Test campaign #2"}

Ответ:HTTP/1.1 200 OKLast-Modified: Tue, 20 Nov 2014 04:58:08 GMT

{ "id": 123, "name": "Test campaign #2"}

Page 25: Target mail.ru API v2

Обновление ресурсовЗапрос:

POST /api/v2/campaigns/123,456.json HTTP/1.1

[ { "id": 123, "status": "blocked", }, { "id": 456, "status": "blocked", }]

Ответ:HTTP/1.1 204 No Content

Page 26: Target mail.ru API v2

X-Target-SudoGET /api/v2/campaigns.json HTTP/1.1X-Target-Sudo: [email protected], d679a84537@agency_client

Page 27: Target mail.ru API v2

СжатиеСжатие показало, что чукча умер от сжатия:

GET /api/v2/campaigns.json HTTP/1.1Accept-Encoding: gzip, deflate

Page 28: Target mail.ru API v2

Продолжают работатьOAuth2ТроттлингПуш-нотификации

Page 29: Target mail.ru API v2

Начинает работатьАсинхронный API

Page 30: Target mail.ru API v2

Больше не работаетСтарая аутентификация с подписью запросов

Page 31: Target mail.ru API v2

Текущий статусЗакрытая альфа

Документация появится после бета-релиза.

Page 32: Target mail.ru API v2

Спасибо за вниманиеВопросы и предложения?