SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Target.Mail.Ru API v2 
Александр Покатилов
API v1 
неконсистентность 
недостаточная документация 
легаси-код 
проблемы с производительностью
REST
Ресурс 
Получение, обновление и удаление ресурса: 
GET /api/v2/campaigns/123.json HTTP/1.1 
POST /api/v2/campaigns/123.json HTTP/1.1 
DELETE /api/v2/campaigns/123.json HTTP/1.1
Коллекция ресурсов 
Получение списка ресурсов, создание ресурса: 
GET /api/v2/campaigns.json HTTP/1.1 
POST /api/v2/campaigns.json HTTP/1.1
Указание полей ресурса 
GET /api/v2/campaigns/123.json?fields=id,name HTTP/1.1 
{ 
"id": 123, 
"name": "test" 
}
Связанные ресурсы 
По умолчанию не отдаются.
Запрос связанного ресурса 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": "Внешние ссылки, клики" 
} 
}
Указание полей для связанных ресурсов: 
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" 
} 
}
Last-Modified 
Запрос: 
GET /api/v2/campaigns/123.json?fields=id,name HTTP/1.1 
Ответ: 
HTTP/1.1 200 OK 
Last-Modified: Tue, 20 Nov 2014 04:58:08 GMT 
{ 
"id": 123, 
"name": "test", 
}
If-Modified-Since 
Запрос: 
GET /api/v2/campaigns/123.json?fields=id,name HTTP/1.1 
If-Modified-Since: Tue, 20 Nov 2014 04:58:08 GMT 
Ответ: 
HTTP/1.1 304 Not Modified
Ошибки 
Запрос: 
GET /api/v2/campaigns/123.json?fields=id,name HTTP/1.1 
Accept-Language: ru 
Ответ: 
HTTP/1.1 404 Not Found 
{ 
"code": "not_found", 
"message": "Запрашиваемый ресурс не найден" 
}
Получение коллекции 
Указание полей ресурса + пагинация и фильтры: 
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 
}
Указание конкретных ресурсов: 
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 
}
Создание ресурса 
Запрос: 
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}] 
} 
}
Ответ: 
HTTP/1.1 201 Created 
Location: http://target.mail.ru/api/v2/campaigns/123.json 
Last-Modified: Tue, 20 Nov 2014 04:58:08 GMT 
{ 
"id": 123 
}
Создание ресурса #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}] 
} 
}
Ответ: 
HTTP/1.1 200 OK 
Last-Modified: Tue, 20 Nov 2014 04:58:08 GMT 
{ 
"id": 123, 
"name": "Test campaign" 
}
Создание ресурсов 
Запрос: 
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}] 
} 
}, 
... 
]
Ответ: 
HTTP/1.1 201 Created 
Location: https://target.mail.ru/api/v2/campaigns/123,456.json 
[ 
{"id": 123}, 
{"id": 456} 
]
Ошибки 
HTTP/1.1 400 Bad Request 
{ 
"package": { 
"id": { 
"code": "unknown_resource", 
"message": "Несуществующий пакет" 
} 
}, 
"name": { 
"code": "required", 
"message": "Поле обязательно для заполнения" 
} 
}
HTTP/1.1 400 Bad Request 
{ 
"banners": [ 
{}, 
{ 
"title": { 
"code": "invalid_chars", 
"message": "Использованы запрещённые символы", 
"allowed": "abcdef" 
} 
} 
] 
}
Обновление ресурса 
Запрос: 
POST /api/v2/campaigns/123.json HTTP/1.1 
{ 
"name": "Test campaign" 
} 
Ответ: 
HTTP/1.1 204 No Content 
Last-Modified: Tue, 20 Nov 2014 04:58:08 GMT
Обновление ресурса #2 
Запрос с указанием полей: 
POST /api/v2/campaigns/123.json?fieds=id,name HTTP/1.1 
{ 
"name": "Test campaign #2" 
} 
Ответ: 
HTTP/1.1 200 OK 
Last-Modified: Tue, 20 Nov 2014 04:58:08 GMT 
{ 
"id": 123, 
"name": "Test campaign #2" 
}
Обновление ресурсов 
Запрос: 
POST /api/v2/campaigns/123,456.json HTTP/1.1 
[ 
{ 
"id": 123, 
"status": "blocked", 
}, 
{ 
"id": 456, 
"status": "blocked", 
} 
] 
Ответ: 
HTTP/1.1 204 No Content
X-Target-Sudo 
GET /api/v2/campaigns.json HTTP/1.1 
X-Target-Sudo: super.agency@mail.ru, d679a84537@agency_client
Сжатие 
Сжатие показало, что чукча умер от сжатия: 
GET /api/v2/campaigns.json HTTP/1.1 
Accept-Encoding: gzip, deflate
Продолжают работать 
OAuth2 
Троттлинг 
Пуш-нотификации
Начинает работать 
Асинхронный API
Больше не работает 
Старая аутентификация с подписью запросов
Текущий статус 
Закрытая альфа 
Документация появится после бета-релиза.
Спасибо за внимание 
Вопросы и предложения?

Contenu connexe

Similaire à Target mail.ru API v2

Полуавтоматизация third-party API
Полуавтоматизация third-party APIПолуавтоматизация third-party API
Полуавтоматизация third-party APISQALab
 
Web весна 2013 лекция 4
Web весна 2013 лекция 4Web весна 2013 лекция 4
Web весна 2013 лекция 4Technopark
 
Web осень 2012 лекция 4
Web осень 2012 лекция 4Web осень 2012 лекция 4
Web осень 2012 лекция 4Technopark
 
Организация работы с API на Vue.js, Виталий Копачёв
Организация работы с API на Vue.js, Виталий КопачёвОрганизация работы с API на Vue.js, Виталий Копачёв
Организация работы с API на Vue.js, Виталий КопачёвMail.ru Group
 
Нельзя просто так взять и сделать версионирование API
Нельзя просто так взять и сделать версионирование APIНельзя просто так взять и сделать версионирование API
Нельзя просто так взять и сделать версионирование APIEatDog
 
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28MoscowJS
 
«Пиринговый веб на JavaScript», Денис Глазков
«Пиринговый веб на JavaScript», Денис Глазков«Пиринговый веб на JavaScript», Денис Глазков
«Пиринговый веб на JavaScript», Денис ГлазковMail.ru Group
 
Как повысить эффективность управления рекламой при помощи API
Как повысить эффективность управления рекламой при помощи APIКак повысить эффективность управления рекламой при помощи API
Как повысить эффективность управления рекламой при помощи APIMail.ru Group
 
"Создание системы логирования" Литуненко Андрей, 2ГИС
"Создание системы логирования" Литуненко Андрей, 2ГИС"Создание системы логирования" Литуненко Андрей, 2ГИС
"Создание системы логирования" Литуненко Андрей, 2ГИСit-people
 
Rambler.iOS #8: Как не стать жертвой бэкендеров
Rambler.iOS #8: Как не стать жертвой бэкендеровRambler.iOS #8: Как не стать жертвой бэкендеров
Rambler.iOS #8: Как не стать жертвой бэкендеровRAMBLER&Co
 
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...Timur Shemsedinov
 
Автоматизация функционального тестирования REST API: секреты, тонкости и подв...
Автоматизация функционального тестирования REST API: секреты, тонкости и подв...Автоматизация функционального тестирования REST API: секреты, тонкости и подв...
Автоматизация функционального тестирования REST API: секреты, тонкости и подв...SQALab
 
«Автоматизация функционального тестирования REST API: секреты, тонкости и под...
«Автоматизация функционального тестирования REST API: секреты, тонкости и под...«Автоматизация функционального тестирования REST API: секреты, тонкости и под...
«Автоматизация функционального тестирования REST API: секреты, тонкости и под...2ГИС Технологии
 
Автоматизация функционального тестирования REST API
Автоматизация функционального тестирования REST APIАвтоматизация функционального тестирования REST API
Автоматизация функционального тестирования REST APIPavel Asanov
 
Обработка сложных POST/PATCH запросов в RESTful API
Обработка сложных POST/PATCH запросов в RESTful APIОбработка сложных POST/PATCH запросов в RESTful API
Обработка сложных POST/PATCH запросов в RESTful APIfightmaster
 

Similaire à Target mail.ru API v2 (16)

Полуавтоматизация third-party API
Полуавтоматизация third-party APIПолуавтоматизация third-party API
Полуавтоматизация third-party API
 
Web весна 2013 лекция 4
Web весна 2013 лекция 4Web весна 2013 лекция 4
Web весна 2013 лекция 4
 
Web осень 2012 лекция 4
Web осень 2012 лекция 4Web осень 2012 лекция 4
Web осень 2012 лекция 4
 
Организация работы с API на Vue.js, Виталий Копачёв
Организация работы с API на Vue.js, Виталий КопачёвОрганизация работы с API на Vue.js, Виталий Копачёв
Организация работы с API на Vue.js, Виталий Копачёв
 
Нельзя просто так взять и сделать версионирование API
Нельзя просто так взять и сделать версионирование APIНельзя просто так взять и сделать версионирование API
Нельзя просто так взять и сделать версионирование API
 
Nginx.pm
Nginx.pmNginx.pm
Nginx.pm
 
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
 
«Пиринговый веб на JavaScript», Денис Глазков
«Пиринговый веб на JavaScript», Денис Глазков«Пиринговый веб на JavaScript», Денис Глазков
«Пиринговый веб на JavaScript», Денис Глазков
 
Как повысить эффективность управления рекламой при помощи API
Как повысить эффективность управления рекламой при помощи APIКак повысить эффективность управления рекламой при помощи API
Как повысить эффективность управления рекламой при помощи API
 
"Создание системы логирования" Литуненко Андрей, 2ГИС
"Создание системы логирования" Литуненко Андрей, 2ГИС"Создание системы логирования" Литуненко Андрей, 2ГИС
"Создание системы логирования" Литуненко Андрей, 2ГИС
 
Rambler.iOS #8: Как не стать жертвой бэкендеров
Rambler.iOS #8: Как не стать жертвой бэкендеровRambler.iOS #8: Как не стать жертвой бэкендеров
Rambler.iOS #8: Как не стать жертвой бэкендеров
 
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
 
Автоматизация функционального тестирования REST API: секреты, тонкости и подв...
Автоматизация функционального тестирования REST API: секреты, тонкости и подв...Автоматизация функционального тестирования REST API: секреты, тонкости и подв...
Автоматизация функционального тестирования REST API: секреты, тонкости и подв...
 
«Автоматизация функционального тестирования REST API: секреты, тонкости и под...
«Автоматизация функционального тестирования REST API: секреты, тонкости и под...«Автоматизация функционального тестирования REST API: секреты, тонкости и под...
«Автоматизация функционального тестирования REST API: секреты, тонкости и под...
 
Автоматизация функционального тестирования REST API
Автоматизация функционального тестирования REST APIАвтоматизация функционального тестирования REST API
Автоматизация функционального тестирования REST API
 
Обработка сложных POST/PATCH запросов в RESTful API
Обработка сложных POST/PATCH запросов в RESTful APIОбработка сложных POST/PATCH запросов в RESTful API
Обработка сложных POST/PATCH запросов в RESTful API
 

Plus de Dmitry Shkolnikov

Как делать аудиторные закупки без OpenRTB
Как делать аудиторные закупки без OpenRTBКак делать аудиторные закупки без OpenRTB
Как делать аудиторные закупки без OpenRTBDmitry Shkolnikov
 
Встречайте myTarget!
Встречайте myTarget!Встречайте myTarget!
Встречайте myTarget!Dmitry Shkolnikov
 
Старая добрая математика в современном интернет-маркетинге
Старая добрая математика в современном интернет-маркетингеСтарая добрая математика в современном интернет-маркетинге
Старая добрая математика в современном интернет-маркетингеDmitry Shkolnikov
 
Размещал ли Пуассон рекламу в социальных сетях?
Размещал ли Пуассон рекламу в социальных сетях?Размещал ли Пуассон рекламу в социальных сетях?
Размещал ли Пуассон рекламу в социальных сетях?Dmitry Shkolnikov
 
Реализация стратегии "Удержание охвата"
Реализация стратегии "Удержание охвата"Реализация стратегии "Удержание охвата"
Реализация стратегии "Удержание охвата"Dmitry Shkolnikov
 
API Таргета: что уже есть и чего ожидать
API Таргета: что уже есть и чего ожидатьAPI Таргета: что уже есть и чего ожидать
API Таргета: что уже есть и чего ожидатьDmitry Shkolnikov
 
Повышаем эффективность таргетированной рекламы с помощью автоматизации размещ...
Повышаем эффективность таргетированной рекламы с помощью автоматизации размещ...Повышаем эффективность таргетированной рекламы с помощью автоматизации размещ...
Повышаем эффективность таргетированной рекламы с помощью автоматизации размещ...Dmitry Shkolnikov
 
Brand new look at mobile apps ad monetization
Brand new look at mobile apps ad monetizationBrand new look at mobile apps ad monetization
Brand new look at mobile apps ad monetizationDmitry Shkolnikov
 
Как автоматизация размещения рекламы приносит прибыль
Как автоматизация размещения рекламы приносит прибыльКак автоматизация размещения рекламы приносит прибыль
Как автоматизация размещения рекламы приносит прибыльDmitry Shkolnikov
 

Plus de Dmitry Shkolnikov (9)

Как делать аудиторные закупки без OpenRTB
Как делать аудиторные закупки без OpenRTBКак делать аудиторные закупки без OpenRTB
Как делать аудиторные закупки без OpenRTB
 
Встречайте myTarget!
Встречайте myTarget!Встречайте myTarget!
Встречайте myTarget!
 
Старая добрая математика в современном интернет-маркетинге
Старая добрая математика в современном интернет-маркетингеСтарая добрая математика в современном интернет-маркетинге
Старая добрая математика в современном интернет-маркетинге
 
Размещал ли Пуассон рекламу в социальных сетях?
Размещал ли Пуассон рекламу в социальных сетях?Размещал ли Пуассон рекламу в социальных сетях?
Размещал ли Пуассон рекламу в социальных сетях?
 
Реализация стратегии "Удержание охвата"
Реализация стратегии "Удержание охвата"Реализация стратегии "Удержание охвата"
Реализация стратегии "Удержание охвата"
 
API Таргета: что уже есть и чего ожидать
API Таргета: что уже есть и чего ожидатьAPI Таргета: что уже есть и чего ожидать
API Таргета: что уже есть и чего ожидать
 
Повышаем эффективность таргетированной рекламы с помощью автоматизации размещ...
Повышаем эффективность таргетированной рекламы с помощью автоматизации размещ...Повышаем эффективность таргетированной рекламы с помощью автоматизации размещ...
Повышаем эффективность таргетированной рекламы с помощью автоматизации размещ...
 
Brand new look at mobile apps ad monetization
Brand new look at mobile apps ad monetizationBrand new look at mobile apps ad monetization
Brand new look at mobile apps ad monetization
 
Как автоматизация размещения рекламы приносит прибыль
Как автоматизация размещения рекламы приносит прибыльКак автоматизация размещения рекламы приносит прибыль
Как автоматизация размещения рекламы приносит прибыль
 

Target mail.ru API v2