Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Api — это не больно, Team Lead, OWOX

126 views

Published on

Тим-лидер одной из команд разработчиков, развивающих Rozetka.ua.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Api — это не больно, Team Lead, OWOX

  1. 1. API это не больно! Суворов Артем API — это не больно Артём Суворов team-leader Rozetka
  2. 2. 1. А вы слышали про Розетку? 2. Кто мы? Чего мы хотим? 3. Минутка статистики 4. Для чего нам API, какие кейсы мы смогли реализовать, а какие с первого раза не получилось 5. Технологичные грабли и как их обойти 6. Ну и чего вы этим добились? Содержание
  3. 3. Самый крупный по посещаемости интернет-супермаркет в Украине http://rozetka.com.ua Заходите, знакомьтесь, заказывайте)) А вы слышали про Розетку?
  4. 4. Кто мы? Чего мы хотим?
  5. 5. Более 1 000 000 посетителей в день Более 1 000 000 товаров на сайте Минутка статистики Обновление цен и наличия для 1 500 товаров в секунду Запрос статуса к 1 000 счетам в секунду Получение 40 интернет-заказов в секунду А требования выдвинули
  6. 6. Кто мы? Чего мы хотим? 1. Хотите забирать заказы? 1. Вот вам MySQl, вот вам view, читайте Но! 3. Хотите обновлять описания товаров? 2. Хотите обновлять цены? 2. Вот вам MySQL, вот вам table, пишите 3. Вот вам MySQL, вот вам еще table, пишите
  7. 7. Кто мы? Чего мы хотим? 1. Скрипты конвертации 2. Большие затраты на изменение структуры данных 3. Неконтролируемая нагрузка 4. Ненастраиваемые права доступа
  8. 8. Для чего нам API? 1. Универсальный интерфейс, который позволит интегрироваться с многими клиентами 2. Простота интеграции 3. Снижение расходов на разработку при интеграции 4. Возможность масштабирования
  9. 9. Красная пилюля или синяя? RPC RESTvs
  10. 10. Преимущества и недостатки ● за одним вызовом может скрываться сложная логика; ● нужно много кодить, под каждый кейс своя точка доступа; ● каждая точка доступа имеет свой формат входящих данных ● кодим один раз, универсальный интерфейс; ● один формат для всех обращений; ● сложные кейсы будут требовать нескольких обращений к API и хранения промежуточных результатов на стороне клиента RPC REST
  11. 11. RPC RESTwith Так красная пилюля и синяя?
  12. 12. xml with links API server Application server Image Hosting upload file setup task for image download request image file response “OK” image Синхронно-асинхронные картинки
  13. 13. Limit or no Limit?.. part 1 where + limit 0,100 part 8 where + limit 700,100 part N where + limit 100*(N-1),100
  14. 14. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 3 4 6 7 8 11 12 13 16 17 18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 3 4 17 187 8 11 12 13 16 Обновление данных Имеем: 1 3 4 6 7 8 17 1812 13 16 А где же 11? Данные, вроде бы, есть, а вроде и нет
  15. 15. Данные, вроде бы, есть, а вроде и нет 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Обновление данных Имеем: 1 3 4 6 7 8 16 17 1811 12 13 1 4 6 8 11 13 16 18 1 3 4 6 7 8 11 12 13 16 17 18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 4 6 8 11 13 16 18 1 3 4 7 8 11 12 13 16 17 18
  16. 16. Давай быстрее
  17. 17. 1. RPC для комплектов 2. RPC для заказов со скидками 3. RPC для групп 4. RPC для управления счетами RPC-шки Зачем? 1. Упростить жизнь пользователям 2. Скрыть внутреннюю логику
  18. 18. 1.Синхронная загрузка картинок 2.Автодокументирование 3.Обучение клиентов пользоваться API правильно А что дальше?
  19. 19. ? ? ?

×