SlideShare uma empresa Scribd logo
1 de 37
Живой API
Олег Алексеев
МойСклад (Москва)
ЖИВОЙ API
Олег Алексеев
МойСклад
Облака в API - сумма больше слагаемых
• Отдельно стоящий SaaS великолепен, но держится
на ручной работе
• Умение делиться данными - много интеграций
• Каждая интеграция - новые клиенты
• Организация рабочего места
кассира
• Подключение разных интернет
магазинов
Облачная учётная система
Оптовые продажи
Несколько сайтов
Региональные офисы
Розничные точки
• Подготовка первичной документации
• Выгрузка в бухгалтерию
• Облачная инфраструктура Учетная
система
Учетная
система
Обмен данными с интернет-магазином
заказы
товары
остатк
и
•данные - 1С, 1С Enterprise Data, YML
•интернет-магазины - CommerceML, Ecwid
•внутренние задачи - RoiStat, Битрикс 24, Geobase
•рассылки - UniSender, Sendsay
•телефония - VoxImplant, Простые звонки
•экранные подсказки - DaDATA
•банки - Альфа-Банк, Банк Точка, Модульбанк, Тинькофф
•оплата - Яндекс.Деньги, QIWI, Assist, Робокасса
МойСклад использует API
МойСклад предоставляет API
• Данные
– CSV
– XML API
– STOCK API
– REST API
– JSON API
– ATOMS (“Свой магазин” Атол)
– POS API (расширение JSON API для POS)
• Управление
– Tenant API (Parallels APS)
– Регистрация
2008 - экспорт всех данных
• Для уверенности пользователей
• Реализация с минимальными затратами -
JAXB
• Ручной экспорт из интерфейса
2008 - XML API
• На основе экспорта данных
• Загрузка multipart
• Все данные - одним контейнером
• Импорт отгрузок и заказов
• Паровоз - проект с РусАгро
2010 - REST API
• Схема практически идентична XML API
• Контейнера нет
• Паровоз - проект с БухСОФТ
• Nouns - /entity/{entityName}/{id}
• Репликация по updated
2010 - STOCK API
• REST + SOAP
• Расчёт остатков - главная ценность
• Самый большой объем данных
Ошибка №1
JAXB разметка сделана непосредственно на JPA
Entity
• Невозможно поддерживать версии
• Совместимость как груз
• API меняется скачком
Ошибка №2
Универсальная фильтрация привела к
использованию в качестве backend
• Непрогнозируемая нагрузка
• Реализация не соответствует
• Состав предоставляемой услуги не
соответствует тарифу
Ошибка №3
Схема и документация путём reverse engineer
• Затрудняет тестирование
• Размывает реализацию
Ошибка №4
Нет инфраструктуры для управления подключенными
приложениями
• Невнятный отклик от разработчиков
• Нет возможности управлять доступом
• Отсутствие гибкости в тарифной политике
2015 - JSON API 1.0
• HATEOAS
• Версионирование
• Схема как контракт
• Документация
• Поддержка больших документов
• Репликация
• Лимиты по нагрузке
2017 - JSON API 2.0
• OAuth
• Регистрация приложений и разработчиков
• Идентификация объектов по каталогу клиента
• Идентификация объектов по именам и иным не
уникальным полям
Какие задачи решают с [REST|JSON] API
• Репликация данных между ИМ или внутренними
учётными системами
• Получение расчётных даных
• Использование в качестве backend
• Бот в Telegram - таскает остатки!
Бот в Telegram за 4 часа
https://bitbucket.org/moysklad/com.lognex.telegram.moysklad.stock
Python 2.7
Google App Engine
Google Cloud Datastore
{
"meta": {
"type": "product",
"mediaType": "application/json"
},
"stock": 6,
"inTransit": 0,
"reserve": 0,
"quantity": 6,
"name": "00003",
"code": "00003",
"price": 20000,
"salePrice": 10000,
"uom": "шт."
}
Статистика REST API
• Компаний 400
• Пользователей 600
• Запросов в секунду 25
• Трафик в сутки 200 Гб
Статистика JSON API
• Компаний 900
• Пользователей 1000
• Запросов в секунду 7
• Трафик в сутки 5 Гб
Статистика в целом
• Компаний 6000
• Пользователей 10000
• Запросов в секунду 750
• Трафик в сутки 300 Гб
Зачем делать API?
• Понимание своего value на рынке
• Экосистема притягивает новых клиентов
• Это интересно!
Место API в продукте
• Самостоятельный продукт
• Продвижение продукта
• Проекция продукта
Какие вопросы нужно себе задавать?
• Для кого будет построен?
• Какую задачу решать с его помощью?
• Как зарабатывать на API?
Что мешает клиенту начать работать с API
• Сложная и/или противоречивая схема данных
• Идентификация элементов данных
• Формат обмена и URL ресурсов
• Несоответствие запросам клиентов
• Отсутствие документации
Что приводит к отказу клиента от API
• Перебои в работе
• Частые изменения в схеме
• Отсутствие версионирования
• Отсутствие документации
• Сложная структура
• Запутанные связи
Что необходимо для эксплуатации API?
• Клиенты!
• Следить за нагрузкой
•Определить лимиты и
контролировать их
• Отслеживать
востребованность
Лимиты навсегда
• Запросов в единицу времени
• Объектов в запросе
• Байт в запросе
• Одновременных запросов
Зачем нужны лимиты?
• Управление нагрузкой
•Соответствие тарифам
•Заработок или подарок?
Скачок нагрузки
Активация лимитов
Идентификация
• Внутренние идентификаторы
• Идентификаторы клиентского
приложения
• Идентификация по имени или
иному не уникальному коду
API
Клиент
Импорт с id клиента, в
ответ - id хранилища
Репликация по id хранилища требует его
сохранения на стороне клиента.
OAuth и доступ приложений к API
• Регистрация приложении и разработчиков
• Гибкая тарифная политика
• Управление нагрузкой
Что такое МойСклад?
МойСклад – облачный сервис управления торговлей
О нас
• Первый в России облачный сервис управления
торговлей
• На рынке с начала 2008 года
• Более 500 000 пользователей
Регистрируйтесь, пишите, звоните
www.moysklad.ru
8 (800) 250-04-32
СПАСИБО!
Тарифы

Mais conteúdo relacionado

Mais procurados

Сервис-провайдинг как инструмент развития бизнеса. А.Альбин.
Сервис-провайдинг как инструмент развития бизнеса. А.Альбин. Сервис-провайдинг как инструмент развития бизнеса. А.Альбин.
Сервис-провайдинг как инструмент развития бизнеса. А.Альбин. Clouds NN
 
доклад на вмк 15.10.2015
доклад на вмк 15.10.2015доклад на вмк 15.10.2015
доклад на вмк 15.10.2015Alexandr Petrov
 
Преимущества PHP 7: от D7 до новой виртуальной машины
Преимущества PHP 7:  от D7 до новой виртуальной машиныПреимущества PHP 7:  от D7 до новой виртуальной машины
Преимущества PHP 7: от D7 до новой виртуальной машины1С-Битрикс
 
High load для начинающих
High load для начинающихHigh load для начинающих
High load для начинающихAndrew Minkin
 
Новинки «1С-Битрикс: Управление сайтом» 16.5
Новинки «1С-Битрикс: Управление сайтом» 16.5Новинки «1С-Битрикс: Управление сайтом» 16.5
Новинки «1С-Битрикс: Управление сайтом» 16.5Наталья Сергеева
 
Share point 2016 Что нового
Share point 2016 Что новогоShare point 2016 Что нового
Share point 2016 Что новогоStas Vyschepan
 
1c bitrix eduСайт для образовательных учреждений
1c bitrix eduСайт для образовательных учреждений1c bitrix eduСайт для образовательных учреждений
1c bitrix eduСайт для образовательных учреждений1С-Битрикс
 
RDSDataSource: Flux, Redux, ReSwift
RDSDataSource: Flux, Redux, ReSwiftRDSDataSource: Flux, Redux, ReSwift
RDSDataSource: Flux, Redux, ReSwiftRAMBLER&Co
 
Backendless BaaS. Dinosaurus for Jeeconf 2013
Backendless BaaS. Dinosaurus for Jeeconf 2013Backendless BaaS. Dinosaurus for Jeeconf 2013
Backendless BaaS. Dinosaurus for Jeeconf 2013backendless
 
4.Подключаем сайт к 1C. Петров Роман
4.Подключаем сайт к 1C. Петров Роман4.Подключаем сайт к 1C. Петров Роман
4.Подключаем сайт к 1C. Петров Романdirectline-sib
 
Сергей Рыжиков (1С-Битрикс)
Сергей Рыжиков (1С-Битрикс)Сергей Рыжиков (1С-Битрикс)
Сергей Рыжиков (1С-Битрикс)Ontico
 
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...Ontico
 
Nemo.travel.amadeus.central asia
Nemo.travel.amadeus.central asiaNemo.travel.amadeus.central asia
Nemo.travel.amadeus.central asiaDanil Fomenko
 
Мобильное приложение для сайтов и интернет-магазинов
Мобильное приложение для сайтов и интернет-магазиновМобильное приложение для сайтов и интернет-магазинов
Мобильное приложение для сайтов и интернет-магазинов1С-Битрикс
 
4.Подключаем сайт к 1С. Петров Роман
4.Подключаем сайт к 1С. Петров Роман4.Подключаем сайт к 1С. Петров Роман
4.Подключаем сайт к 1С. Петров Романdirectline-sib
 
Особенности MVP в Enterprise / Владимир Васильев (Почта России)
Особенности MVP в Enterprise / Владимир Васильев (Почта России)Особенности MVP в Enterprise / Владимир Васильев (Почта России)
Особенности MVP в Enterprise / Владимир Васильев (Почта России)Ontico
 
Новый Битрикс24 раскрывает стратегию развития (28.05.2014)
Новый Битрикс24 раскрывает стратегию развития (28.05.2014)Новый Битрикс24 раскрывает стратегию развития (28.05.2014)
Новый Битрикс24 раскрывает стратегию развития (28.05.2014)1С-Битрикс
 
«1С-Битрикс: 1С:Франчайзи»
«1С-Битрикс:  1С:Франчайзи»  «1С-Битрикс:  1С:Франчайзи»
«1С-Битрикс: 1С:Франчайзи» 1С-Битрикс
 
DataBase Intellegence Presentation
DataBase Intellegence Presentation DataBase Intellegence Presentation
DataBase Intellegence Presentation Alexandr Zhuravlev
 

Mais procurados (20)

Сервис-провайдинг как инструмент развития бизнеса. А.Альбин.
Сервис-провайдинг как инструмент развития бизнеса. А.Альбин. Сервис-провайдинг как инструмент развития бизнеса. А.Альбин.
Сервис-провайдинг как инструмент развития бизнеса. А.Альбин.
 
доклад на вмк 15.10.2015
доклад на вмк 15.10.2015доклад на вмк 15.10.2015
доклад на вмк 15.10.2015
 
Преимущества PHP 7: от D7 до новой виртуальной машины
Преимущества PHP 7:  от D7 до новой виртуальной машиныПреимущества PHP 7:  от D7 до новой виртуальной машины
Преимущества PHP 7: от D7 до новой виртуальной машины
 
High load для начинающих
High load для начинающихHigh load для начинающих
High load для начинающих
 
Новинки «1С-Битрикс: Управление сайтом» 16.5
Новинки «1С-Битрикс: Управление сайтом» 16.5Новинки «1С-Битрикс: Управление сайтом» 16.5
Новинки «1С-Битрикс: Управление сайтом» 16.5
 
Share point 2016 Что нового
Share point 2016 Что новогоShare point 2016 Что нового
Share point 2016 Что нового
 
1c bitrix eduСайт для образовательных учреждений
1c bitrix eduСайт для образовательных учреждений1c bitrix eduСайт для образовательных учреждений
1c bitrix eduСайт для образовательных учреждений
 
RDSDataSource: Flux, Redux, ReSwift
RDSDataSource: Flux, Redux, ReSwiftRDSDataSource: Flux, Redux, ReSwift
RDSDataSource: Flux, Redux, ReSwift
 
Эрмитаж
ЭрмитажЭрмитаж
Эрмитаж
 
Backendless BaaS. Dinosaurus for Jeeconf 2013
Backendless BaaS. Dinosaurus for Jeeconf 2013Backendless BaaS. Dinosaurus for Jeeconf 2013
Backendless BaaS. Dinosaurus for Jeeconf 2013
 
4.Подключаем сайт к 1C. Петров Роман
4.Подключаем сайт к 1C. Петров Роман4.Подключаем сайт к 1C. Петров Роман
4.Подключаем сайт к 1C. Петров Роман
 
Сергей Рыжиков (1С-Битрикс)
Сергей Рыжиков (1С-Битрикс)Сергей Рыжиков (1С-Битрикс)
Сергей Рыжиков (1С-Битрикс)
 
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
 
Nemo.travel.amadeus.central asia
Nemo.travel.amadeus.central asiaNemo.travel.amadeus.central asia
Nemo.travel.amadeus.central asia
 
Мобильное приложение для сайтов и интернет-магазинов
Мобильное приложение для сайтов и интернет-магазиновМобильное приложение для сайтов и интернет-магазинов
Мобильное приложение для сайтов и интернет-магазинов
 
4.Подключаем сайт к 1С. Петров Роман
4.Подключаем сайт к 1С. Петров Роман4.Подключаем сайт к 1С. Петров Роман
4.Подключаем сайт к 1С. Петров Роман
 
Особенности MVP в Enterprise / Владимир Васильев (Почта России)
Особенности MVP в Enterprise / Владимир Васильев (Почта России)Особенности MVP в Enterprise / Владимир Васильев (Почта России)
Особенности MVP в Enterprise / Владимир Васильев (Почта России)
 
Новый Битрикс24 раскрывает стратегию развития (28.05.2014)
Новый Битрикс24 раскрывает стратегию развития (28.05.2014)Новый Битрикс24 раскрывает стратегию развития (28.05.2014)
Новый Битрикс24 раскрывает стратегию развития (28.05.2014)
 
«1С-Битрикс: 1С:Франчайзи»
«1С-Битрикс:  1С:Франчайзи»  «1С-Битрикс:  1С:Франчайзи»
«1С-Битрикс: 1С:Франчайзи»
 
DataBase Intellegence Presentation
DataBase Intellegence Presentation DataBase Intellegence Presentation
DataBase Intellegence Presentation
 

Destaque

SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...SECON
 
SECON'2016. Барсуков Александр, Боссами не рождаются
SECON'2016. Барсуков Александр, Боссами не рождаютсяSECON'2016. Барсуков Александр, Боссами не рождаются
SECON'2016. Барсуков Александр, Боссами не рождаютсяSECON
 
S01 e01 schema-design
S01 e01 schema-designS01 e01 schema-design
S01 e01 schema-designMongoDB
 
SECON'2016. Бушмелев Юрий, Два титановых шарика
SECON'2016. Бушмелев Юрий, Два титановых шарикаSECON'2016. Бушмелев Юрий, Два титановых шарика
SECON'2016. Бушмелев Юрий, Два титановых шарикаSECON
 
Lean Innovation i Saxo Bank / Morgenbooster
Lean Innovation i Saxo Bank / MorgenboosterLean Innovation i Saxo Bank / Morgenbooster
Lean Innovation i Saxo Bank / Morgenbooster1508 A/S
 
EMF-REST: Generation of RESTful APIs from Models
EMF-REST: Generation of RESTful APIs from ModelsEMF-REST: Generation of RESTful APIs from Models
EMF-REST: Generation of RESTful APIs from ModelsHamza ED-DOUIBI
 
Developing modular, polyglot applications with Spring (SpringOne India 2012)
Developing modular, polyglot applications with Spring (SpringOne India 2012)Developing modular, polyglot applications with Spring (SpringOne India 2012)
Developing modular, polyglot applications with Spring (SpringOne India 2012)Chris Richardson
 
ECSA'15 - Modeling REST-ful conversations
ECSA'15 - Modeling REST-ful conversationsECSA'15 - Modeling REST-ful conversations
ECSA'15 - Modeling REST-ful conversationsAna Ivanchikj
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Ontico
 

Destaque (9)

SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
 
SECON'2016. Барсуков Александр, Боссами не рождаются
SECON'2016. Барсуков Александр, Боссами не рождаютсяSECON'2016. Барсуков Александр, Боссами не рождаются
SECON'2016. Барсуков Александр, Боссами не рождаются
 
S01 e01 schema-design
S01 e01 schema-designS01 e01 schema-design
S01 e01 schema-design
 
SECON'2016. Бушмелев Юрий, Два титановых шарика
SECON'2016. Бушмелев Юрий, Два титановых шарикаSECON'2016. Бушмелев Юрий, Два титановых шарика
SECON'2016. Бушмелев Юрий, Два титановых шарика
 
Lean Innovation i Saxo Bank / Morgenbooster
Lean Innovation i Saxo Bank / MorgenboosterLean Innovation i Saxo Bank / Morgenbooster
Lean Innovation i Saxo Bank / Morgenbooster
 
EMF-REST: Generation of RESTful APIs from Models
EMF-REST: Generation of RESTful APIs from ModelsEMF-REST: Generation of RESTful APIs from Models
EMF-REST: Generation of RESTful APIs from Models
 
Developing modular, polyglot applications with Spring (SpringOne India 2012)
Developing modular, polyglot applications with Spring (SpringOne India 2012)Developing modular, polyglot applications with Spring (SpringOne India 2012)
Developing modular, polyglot applications with Spring (SpringOne India 2012)
 
ECSA'15 - Modeling REST-ful conversations
ECSA'15 - Modeling REST-ful conversationsECSA'15 - Modeling REST-ful conversations
ECSA'15 - Modeling REST-ful conversations
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
 

Semelhante a SECON'2016. Алексеев Олег, Живой API

Асинхронный биллинг для службы такси - IzhDevCom November 2014
Асинхронный биллинг для службы такси - IzhDevCom November 2014Асинхронный биллинг для службы такси - IzhDevCom November 2014
Асинхронный биллинг для службы такси - IzhDevCom November 2014Egor Konovalov
 
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Ontico
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитикиИлья Середа
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Ontico
 
Azure Mobile Backend
Azure Mobile BackendAzure Mobile Backend
Azure Mobile BackendVitaly Baum
 
05 razrabotka pod insales
05 razrabotka pod insales05 razrabotka pod insales
05 razrabotka pod insalesSokolov Artyom
 
ITmozg, Даниил Павлючков
ITmozg, Даниил ПавлючковITmozg, Даниил Павлючков
ITmozg, Даниил ПавлючковEYevseyeva
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, SkypeOntico
 
Сила User Experience - как Dell Foglight может помочь бизнесу
Сила User Experience - как Dell Foglight может помочь бизнесуСила User Experience - как Dell Foglight может помочь бизнесу
Сила User Experience - как Dell Foglight может помочь бизнесуBAKOTECH
 
CodeFreeze 2013: как устроен enter (расширенная версия)
CodeFreeze 2013: как устроен enter (расширенная версия)CodeFreeze 2013: как устроен enter (расширенная версия)
CodeFreeze 2013: как устроен enter (расширенная версия)Andrey Tatarinov
 
Владимир Бедарев InSales.Techdays2015
Владимир Бедарев InSales.Techdays2015Владимир Бедарев InSales.Techdays2015
Владимир Бедарев InSales.Techdays2015InSales
 
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)Ontico
 
Высоконагруженные трейдинговые системы и их тестирование
Высоконагруженные трейдинговые системы и их тестирование Высоконагруженные трейдинговые системы и их тестирование
Высоконагруженные трейдинговые системы и их тестирование Iosif Itkin
 
WebSite Security Day 2016 - Мониторинг e-commerce
WebSite Security Day 2016 - Мониторинг e-commerceWebSite Security Day 2016 - Мониторинг e-commerce
WebSite Security Day 2016 - Мониторинг e-commerceСергей Обухов
 
Рябинков Артем, 1С-Битрикс (Москва) Руководитель отдела развития бизнеса: "Ин...
Рябинков Артем, 1С-Битрикс (Москва) Руководитель отдела развития бизнеса: "Ин...Рябинков Артем, 1С-Битрикс (Москва) Руководитель отдела развития бизнеса: "Ин...
Рябинков Артем, 1С-Битрикс (Москва) Руководитель отдела развития бизнеса: "Ин...web2win
 
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukWeb and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukInterSystems
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéInterSystems CEE
 
МойСклад. Автоматизация интернет-магазина. Три шага к успеху
МойСклад. Автоматизация интернет-магазина. Три шага к успехуМойСклад. Автоматизация интернет-магазина. Три шага к успеху
МойСклад. Автоматизация интернет-магазина. Три шага к успехуMoySklad
 
Hadoop in Wikimart. Part 1. Business
Hadoop in Wikimart. Part 1. BusinessHadoop in Wikimart. Part 1. Business
Hadoop in Wikimart. Part 1. BusinessRoman Zykov
 

Semelhante a SECON'2016. Алексеев Олег, Живой API (20)

Асинхронный биллинг для службы такси - IzhDevCom November 2014
Асинхронный биллинг для службы такси - IzhDevCom November 2014Асинхронный биллинг для службы такси - IzhDevCom November 2014
Асинхронный биллинг для службы такси - IzhDevCom November 2014
 
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
 
Azure Mobile Backend
Azure Mobile BackendAzure Mobile Backend
Azure Mobile Backend
 
05 razrabotka pod insales
05 razrabotka pod insales05 razrabotka pod insales
05 razrabotka pod insales
 
ITmozg, Даниил Павлючков
ITmozg, Даниил ПавлючковITmozg, Даниил Павлючков
ITmozg, Даниил Павлючков
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, Skype
 
Сила User Experience - как Dell Foglight может помочь бизнесу
Сила User Experience - как Dell Foglight может помочь бизнесуСила User Experience - как Dell Foglight может помочь бизнесу
Сила User Experience - как Dell Foglight может помочь бизнесу
 
CodeFreeze 2013: как устроен enter (расширенная версия)
CodeFreeze 2013: как устроен enter (расширенная версия)CodeFreeze 2013: как устроен enter (расширенная версия)
CodeFreeze 2013: как устроен enter (расширенная версия)
 
Владимир Бедарев InSales.Techdays2015
Владимир Бедарев InSales.Techdays2015Владимир Бедарев InSales.Techdays2015
Владимир Бедарев InSales.Techdays2015
 
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
 
Высоконагруженные трейдинговые системы и их тестирование
Высоконагруженные трейдинговые системы и их тестирование Высоконагруженные трейдинговые системы и их тестирование
Высоконагруженные трейдинговые системы и их тестирование
 
WebSite Security Day 2016 - Мониторинг e-commerce
WebSite Security Day 2016 - Мониторинг e-commerceWebSite Security Day 2016 - Мониторинг e-commerce
WebSite Security Day 2016 - Мониторинг e-commerce
 
Рябинков Артем, 1С-Битрикс (Москва) Руководитель отдела развития бизнеса: "Ин...
Рябинков Артем, 1С-Битрикс (Москва) Руководитель отдела развития бизнеса: "Ин...Рябинков Артем, 1С-Битрикс (Москва) Руководитель отдела развития бизнеса: "Ин...
Рябинков Артем, 1С-Битрикс (Москва) Руководитель отдела развития бизнеса: "Ин...
 
Аналитика в SaaS-бизнесе на примере OWOX BI
Аналитика в SaaS-бизнесе на примере OWOX BIАналитика в SaaS-бизнесе на примере OWOX BI
Аналитика в SaaS-бизнесе на примере OWOX BI
 
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukWeb and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard Lebedyuk
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для Caché
 
МойСклад. Автоматизация интернет-магазина. Три шага к успеху
МойСклад. Автоматизация интернет-магазина. Три шага к успехуМойСклад. Автоматизация интернет-магазина. Три шага к успеху
МойСклад. Автоматизация интернет-магазина. Три шага к успеху
 
Hadoop in Wikimart. Part 1. Business
Hadoop in Wikimart. Part 1. BusinessHadoop in Wikimart. Part 1. Business
Hadoop in Wikimart. Part 1. Business
 

Mais de SECON

SECON'2017, LAZADA Effartlrss Shopping, Как мы тестируем?
 SECON'2017, LAZADA Effartlrss Shopping, Как мы тестируем? SECON'2017, LAZADA Effartlrss Shopping, Как мы тестируем?
SECON'2017, LAZADA Effartlrss Shopping, Как мы тестируем?SECON
 
SECON'2017, Куприенко Игорь, Университет 4.0: Ждать Нельзя Внедрять
SECON'2017, Куприенко Игорь, Университет 4.0: Ждать Нельзя ВнедрятьSECON'2017, Куприенко Игорь, Университет 4.0: Ждать Нельзя Внедрять
SECON'2017, Куприенко Игорь, Университет 4.0: Ждать Нельзя ВнедрятьSECON
 
SECON'2017, Васильков Василий, Elm в production
SECON'2017, Васильков Василий, Elm в productionSECON'2017, Васильков Василий, Elm в production
SECON'2017, Васильков Василий, Elm в productionSECON
 
SECON'2017, Емельянов Игорь, Я хочу стать программистом: первые шаги.
SECON'2017, Емельянов Игорь, Я хочу стать программистом: первые шаги.SECON'2017, Емельянов Игорь, Я хочу стать программистом: первые шаги.
SECON'2017, Емельянов Игорь, Я хочу стать программистом: первые шаги.SECON
 
SECON'2017, Тыкушин Анатолий, Болдырев Михаил, Расследование кибер-преступлений
SECON'2017, Тыкушин Анатолий, Болдырев Михаил, Расследование кибер-преступленийSECON'2017, Тыкушин Анатолий, Болдырев Михаил, Расследование кибер-преступлений
SECON'2017, Тыкушин Анатолий, Болдырев Михаил, Расследование кибер-преступленийSECON
 
SECON'2017, Рожкова Надежда, Бухгалтерские лайфхаки для IT компаний
SECON'2017, 	Рожкова Надежда, Бухгалтерские лайфхаки для IT компанийSECON'2017, 	Рожкова Надежда, Бухгалтерские лайфхаки для IT компаний
SECON'2017, Рожкова Надежда, Бухгалтерские лайфхаки для IT компанийSECON
 
SECON'2017, Янов Альберт, Управленческий учет в компании: для чего он нужен и...
SECON'2017, Янов Альберт, Управленческий учет в компании: для чего он нужен и...SECON'2017, Янов Альберт, Управленческий учет в компании: для чего он нужен и...
SECON'2017, Янов Альберт, Управленческий учет в компании: для чего он нужен и...SECON
 
SECON'2017, Емелина Елена, Управленческий учет в софтверной компании на коленке
SECON'2017, Емелина Елена, Управленческий учет в софтверной компании на коленкеSECON'2017, Емелина Елена, Управленческий учет в софтверной компании на коленке
SECON'2017, Емелина Елена, Управленческий учет в софтверной компании на коленкеSECON
 
SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигни
SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигниSECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигни
SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигниSECON
 
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?SECON
 
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...SECON
 
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...SECON
 
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...SECON
 
SECON'2017, Цаль-Цалко Иван, Go на практике
SECON'2017, Цаль-Цалко Иван, Go на практикеSECON'2017, Цаль-Цалко Иван, Go на практике
SECON'2017, Цаль-Цалко Иван, Go на практикеSECON
 
SECON'2017, Неволин Роман, Функциональный C#
SECON'2017, Неволин Роман, Функциональный C#SECON'2017, Неволин Роман, Функциональный C#
SECON'2017, Неволин Роман, Функциональный C#SECON
 
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проекта
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проектаSECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проекта
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проектаSECON
 
SECON'2017, Макарычев Костантин, Использование Spark для машинного обучения
SECON'2017, Макарычев Костантин, Использование Spark для машинного обученияSECON'2017, Макарычев Костантин, Использование Spark для машинного обучения
SECON'2017, Макарычев Костантин, Использование Spark для машинного обученияSECON
 
SECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON'2017, Журавлев Денис, Маркетинг без маркетологаSECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON'2017, Журавлев Денис, Маркетинг без маркетологаSECON
 
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателя
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателяSECON'2017, Шатров Михаил, Инструменты успешного предпринимателя
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателяSECON
 
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.SECON
 

Mais de SECON (20)

SECON'2017, LAZADA Effartlrss Shopping, Как мы тестируем?
 SECON'2017, LAZADA Effartlrss Shopping, Как мы тестируем? SECON'2017, LAZADA Effartlrss Shopping, Как мы тестируем?
SECON'2017, LAZADA Effartlrss Shopping, Как мы тестируем?
 
SECON'2017, Куприенко Игорь, Университет 4.0: Ждать Нельзя Внедрять
SECON'2017, Куприенко Игорь, Университет 4.0: Ждать Нельзя ВнедрятьSECON'2017, Куприенко Игорь, Университет 4.0: Ждать Нельзя Внедрять
SECON'2017, Куприенко Игорь, Университет 4.0: Ждать Нельзя Внедрять
 
SECON'2017, Васильков Василий, Elm в production
SECON'2017, Васильков Василий, Elm в productionSECON'2017, Васильков Василий, Elm в production
SECON'2017, Васильков Василий, Elm в production
 
SECON'2017, Емельянов Игорь, Я хочу стать программистом: первые шаги.
SECON'2017, Емельянов Игорь, Я хочу стать программистом: первые шаги.SECON'2017, Емельянов Игорь, Я хочу стать программистом: первые шаги.
SECON'2017, Емельянов Игорь, Я хочу стать программистом: первые шаги.
 
SECON'2017, Тыкушин Анатолий, Болдырев Михаил, Расследование кибер-преступлений
SECON'2017, Тыкушин Анатолий, Болдырев Михаил, Расследование кибер-преступленийSECON'2017, Тыкушин Анатолий, Болдырев Михаил, Расследование кибер-преступлений
SECON'2017, Тыкушин Анатолий, Болдырев Михаил, Расследование кибер-преступлений
 
SECON'2017, Рожкова Надежда, Бухгалтерские лайфхаки для IT компаний
SECON'2017, 	Рожкова Надежда, Бухгалтерские лайфхаки для IT компанийSECON'2017, 	Рожкова Надежда, Бухгалтерские лайфхаки для IT компаний
SECON'2017, Рожкова Надежда, Бухгалтерские лайфхаки для IT компаний
 
SECON'2017, Янов Альберт, Управленческий учет в компании: для чего он нужен и...
SECON'2017, Янов Альберт, Управленческий учет в компании: для чего он нужен и...SECON'2017, Янов Альберт, Управленческий учет в компании: для чего он нужен и...
SECON'2017, Янов Альберт, Управленческий учет в компании: для чего он нужен и...
 
SECON'2017, Емелина Елена, Управленческий учет в софтверной компании на коленке
SECON'2017, Емелина Елена, Управленческий учет в софтверной компании на коленкеSECON'2017, Емелина Елена, Управленческий учет в софтверной компании на коленке
SECON'2017, Емелина Елена, Управленческий учет в софтверной компании на коленке
 
SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигни
SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигниSECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигни
SECON'2017, Кузнецов Михаил, Самоуправляемая компания без бюрократии и фигни
 
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?
SECON'2017, Коротков Анатолий, #noprojects #nomvp .. куда катится мир?
 
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...
SECON'2017, Трошин Алексей, Выжить без менеджера: шаблоны правильных коммуник...
 
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
 
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...
SECON'2017, Мартынов Антон, Опыт использования удаленных команд при реализаци...
 
SECON'2017, Цаль-Цалко Иван, Go на практике
SECON'2017, Цаль-Цалко Иван, Go на практикеSECON'2017, Цаль-Цалко Иван, Go на практике
SECON'2017, Цаль-Цалко Иван, Go на практике
 
SECON'2017, Неволин Роман, Функциональный C#
SECON'2017, Неволин Роман, Функциональный C#SECON'2017, Неволин Роман, Функциональный C#
SECON'2017, Неволин Роман, Функциональный C#
 
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проекта
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проектаSECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проекта
SECON'2017, Мелехова Анна, Архитектура как стихия. Обуздываем энтропию проекта
 
SECON'2017, Макарычев Костантин, Использование Spark для машинного обучения
SECON'2017, Макарычев Костантин, Использование Spark для машинного обученияSECON'2017, Макарычев Костантин, Использование Spark для машинного обучения
SECON'2017, Макарычев Костантин, Использование Spark для машинного обучения
 
SECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON'2017, Журавлев Денис, Маркетинг без маркетологаSECON'2017, Журавлев Денис, Маркетинг без маркетолога
SECON'2017, Журавлев Денис, Маркетинг без маркетолога
 
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателя
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателяSECON'2017, Шатров Михаил, Инструменты успешного предпринимателя
SECON'2017, Шатров Михаил, Инструменты успешного предпринимателя
 
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.
SECON'2017, Цымбал Дмитрий, Компания - Компания. Дружба на этом уровне.
 

SECON'2016. Алексеев Олег, Живой API

  • 3. Облака в API - сумма больше слагаемых • Отдельно стоящий SaaS великолепен, но держится на ручной работе • Умение делиться данными - много интеграций • Каждая интеграция - новые клиенты
  • 4. • Организация рабочего места кассира • Подключение разных интернет магазинов Облачная учётная система Оптовые продажи Несколько сайтов Региональные офисы Розничные точки • Подготовка первичной документации • Выгрузка в бухгалтерию • Облачная инфраструктура Учетная система
  • 5. Учетная система Обмен данными с интернет-магазином заказы товары остатк и
  • 6. •данные - 1С, 1С Enterprise Data, YML •интернет-магазины - CommerceML, Ecwid •внутренние задачи - RoiStat, Битрикс 24, Geobase •рассылки - UniSender, Sendsay •телефония - VoxImplant, Простые звонки •экранные подсказки - DaDATA •банки - Альфа-Банк, Банк Точка, Модульбанк, Тинькофф •оплата - Яндекс.Деньги, QIWI, Assist, Робокасса МойСклад использует API
  • 7. МойСклад предоставляет API • Данные – CSV – XML API – STOCK API – REST API – JSON API – ATOMS (“Свой магазин” Атол) – POS API (расширение JSON API для POS) • Управление – Tenant API (Parallels APS) – Регистрация
  • 8. 2008 - экспорт всех данных • Для уверенности пользователей • Реализация с минимальными затратами - JAXB • Ручной экспорт из интерфейса
  • 9. 2008 - XML API • На основе экспорта данных • Загрузка multipart • Все данные - одним контейнером • Импорт отгрузок и заказов • Паровоз - проект с РусАгро
  • 10. 2010 - REST API • Схема практически идентична XML API • Контейнера нет • Паровоз - проект с БухСОФТ • Nouns - /entity/{entityName}/{id} • Репликация по updated
  • 11. 2010 - STOCK API • REST + SOAP • Расчёт остатков - главная ценность • Самый большой объем данных
  • 12. Ошибка №1 JAXB разметка сделана непосредственно на JPA Entity • Невозможно поддерживать версии • Совместимость как груз • API меняется скачком
  • 13. Ошибка №2 Универсальная фильтрация привела к использованию в качестве backend • Непрогнозируемая нагрузка • Реализация не соответствует • Состав предоставляемой услуги не соответствует тарифу
  • 14. Ошибка №3 Схема и документация путём reverse engineer • Затрудняет тестирование • Размывает реализацию
  • 15. Ошибка №4 Нет инфраструктуры для управления подключенными приложениями • Невнятный отклик от разработчиков • Нет возможности управлять доступом • Отсутствие гибкости в тарифной политике
  • 16. 2015 - JSON API 1.0 • HATEOAS • Версионирование • Схема как контракт • Документация • Поддержка больших документов • Репликация • Лимиты по нагрузке
  • 17. 2017 - JSON API 2.0 • OAuth • Регистрация приложений и разработчиков • Идентификация объектов по каталогу клиента • Идентификация объектов по именам и иным не уникальным полям
  • 18. Какие задачи решают с [REST|JSON] API • Репликация данных между ИМ или внутренними учётными системами • Получение расчётных даных • Использование в качестве backend • Бот в Telegram - таскает остатки!
  • 19. Бот в Telegram за 4 часа https://bitbucket.org/moysklad/com.lognex.telegram.moysklad.stock Python 2.7 Google App Engine Google Cloud Datastore { "meta": { "type": "product", "mediaType": "application/json" }, "stock": 6, "inTransit": 0, "reserve": 0, "quantity": 6, "name": "00003", "code": "00003", "price": 20000, "salePrice": 10000, "uom": "шт." }
  • 20. Статистика REST API • Компаний 400 • Пользователей 600 • Запросов в секунду 25 • Трафик в сутки 200 Гб
  • 21. Статистика JSON API • Компаний 900 • Пользователей 1000 • Запросов в секунду 7 • Трафик в сутки 5 Гб
  • 22. Статистика в целом • Компаний 6000 • Пользователей 10000 • Запросов в секунду 750 • Трафик в сутки 300 Гб
  • 23. Зачем делать API? • Понимание своего value на рынке • Экосистема притягивает новых клиентов • Это интересно!
  • 24. Место API в продукте • Самостоятельный продукт • Продвижение продукта • Проекция продукта
  • 25. Какие вопросы нужно себе задавать? • Для кого будет построен? • Какую задачу решать с его помощью? • Как зарабатывать на API?
  • 26. Что мешает клиенту начать работать с API • Сложная и/или противоречивая схема данных • Идентификация элементов данных • Формат обмена и URL ресурсов • Несоответствие запросам клиентов • Отсутствие документации
  • 27. Что приводит к отказу клиента от API • Перебои в работе • Частые изменения в схеме • Отсутствие версионирования • Отсутствие документации • Сложная структура • Запутанные связи
  • 28. Что необходимо для эксплуатации API? • Клиенты! • Следить за нагрузкой •Определить лимиты и контролировать их • Отслеживать востребованность
  • 29. Лимиты навсегда • Запросов в единицу времени • Объектов в запросе • Байт в запросе • Одновременных запросов
  • 30. Зачем нужны лимиты? • Управление нагрузкой •Соответствие тарифам •Заработок или подарок? Скачок нагрузки Активация лимитов
  • 31. Идентификация • Внутренние идентификаторы • Идентификаторы клиентского приложения • Идентификация по имени или иному не уникальному коду API Клиент Импорт с id клиента, в ответ - id хранилища Репликация по id хранилища требует его сохранения на стороне клиента.
  • 32. OAuth и доступ приложений к API • Регистрация приложении и разработчиков • Гибкая тарифная политика • Управление нагрузкой
  • 33. Что такое МойСклад? МойСклад – облачный сервис управления торговлей
  • 34. О нас • Первый в России облачный сервис управления торговлей • На рынке с начала 2008 года • Более 500 000 пользователей