Публикация

подписчиков: 4 Подписаться
1
Avatar

Более менее удачная интеграция по АПИ

Хочу поделиться опытом интеграции с МС без хуков. Разработчикам сказать спасибо не за что. Т.к. вы ребята мне советовали использовать веб хуки. Хотя судя по публикациям с ними проблемы возникают. Хочу сказать спасибо коллегам из сообщества. Ваши советы подвели к такой интеграции.
Для интеграции с МС использую curl. Запросы с фильтрацией данных по АПИ занимают 5-6 секунд (видимо там руками фильтруют). Поэтому если делать много запросов (например выгрузить определенную группу заказов на сайт) ждать можно долго.
Но такую проблему можно обойти. У curl есть функции для асинхронных запросов. Поэтому делайте запросы асинхронно (не больше 20 за раз, см. ограничения по АПИ). Для примера весь ассортимент (примерно 37500 товаров) выгружается за 1 минуту. А отфильтрованные заказы (около 4000) за 20 секунд.
Но выгружать через небольшие промежутки времени все нужные данные не нужно. Достаточно делать запросы по дате обновления. Я ставлю за последние 2 дня.
Но также в запросах нужно указывать параметры для получения удаленных и активных сущностей. Как оказалось при удалении сущности у нее и дата обновления изменяется (специально такое сделано или случайно - неизвестно). Поэтому можно не только обновлять и добавлять новые данные на сайт. но и удалять с сайта данные об удаленных сущностях МС.
Таким образом можно обновлять данные из МС быстро и достаточно надежно. Если конечно МойСклад не отвалится на 2 дня.

Максим

Войдите в службу, чтобы оставить комментарий.

Комментариев: 9

3
Avatar

Добрый день!

 

Очень жаль, что в процессе интеграции вам пришлось столкнуться с некоторыми неудобствами нашего АПИ. Но хотелось бы прокомментировать ваш ответ:

 

1) Мы действительно советуем нашим пользователям использовать веб-хуки для получения обновления из МоегоСклада, т.к. они предоставляют возможность сделать обмен более живым. Проблем на нашей стороне с веб-хуками не наблюдается. По замечанию "Хотя судя по публикациям с ними проблемы возникают" привожу примеры обращений по вебхуками за последние три месяца, и результаты их решения:

https://support.moysklad.ru/hc/ru/community/posts/360003105387-Webhook-%D0%BE%D0%BA%D0%BE%D0%BD%D1%87%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE-%D1%81%D0%BB%D0%BE%D0%BC%D0%B0%D0%BB%D1%81%D1%8F?page=1#community_comment_360001763547  - после анализа было выяснено, что проблема на стороне пользователя. веб-хуки из МС уходят корректно

https://support.moysklad.ru/hc/ru/community/posts/360002866147-%D0%9F%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%BD%D0%BE-%D1%81%D0%BB%D0%B5%D1%82%D0%B0%D1%8E%D1%82-%D0%B2%D1%8D%D0%B1%D1%85%D1%83%D0%BA%D0%B8-%D0%BA%D0%B0%D0%BA-%D1%83%D0%B7%D0%BD%D0%B0%D1%82%D1%8C-ip - пользователь действительно сам отсылал удаления веб-хуков. Мы проверили это по логам.

https://support.moysklad.ru/hc/ru/community/posts/360002456328-WebHook -  обращения в поддержку от пользователя не поступило

https://support.moysklad.ru/hc/ru/community/posts/360002454128-%D0%9D%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D0%B2%D0%B5%D0%B1%D1%85%D1%83%D0%BA%D0%BE%D0%B2-%D0%B4%D0%BB%D1%8F-%D0%BE%D0%B4%D0%BD%D0%BE%D0%B9-%D1%81%D1%83%D1%89%D0%BD%D0%BE%D1%81%D1%82%D0%B8 - ответ на вопрос дали на форуме

https://support.moysklad.ru/hc/ru/community/posts/360001065067-%D0%9A%D0%B0%D0%BA-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-%D0%92%D0%B5%D0%B1%D0%A5%D1%83%D0%BA%D0%B8 - проблема пользователя была связана именно с работой скрипта, а не веб-хуков

https://support.moysklad.ru/hc/ru/community/posts/360001038307-%D0%9D%D0%B5-%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D1%8F%D1%8E%D1%82%D1%81%D1%8F-%D1%85%D1%83%D0%BA%D0%B8 - был дан ответ на форуме

https://support.moysklad.ru/hc/ru/community/posts/360000980187-%D0%9E%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%92%D0%B5%D0%B1%D0%A5%D1%83%D0%BA%D0%BE%D0%B2 - был дан овтет на форуме

https://support.moysklad.ru/hc/ru/community/posts/360000909488-%D0%9D%D0%B5-%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%8E%D1%82%D1%81%D1%8F-%D0%A5%D0%A3%D0%9A%D0%98- - дальнейшего обращения в поддержку не последовало, поэтому мы считаем, что данная рекомендация помогла

 

Как видно из анализа постов на форуме, ваше утверждение про то, что у нас возникают проблемы с веб-хуками - безосновательно. Если все же вы у вас возникли проблемы с веб-хуками, могу дать следующую рекомендацию для анализа проблемы: 

  1. Запросите список веб-хуков на вашем акканте. Это можно сделать, выполнив запрос https://online.moysklad.ru/api/remap/1.1/doc/index.html#веб-хуки-веб-хуки-get. В полученном списке найдите проблемный веб-хук и убедитесь, что он активирован (флаг enabled выставлен в true), создан на провильный тип сущности и действие (создание, обновление либо удаление)
  2. Если вы меняете сущность через АПИ - убедитесь, что при отправке события на изменение вы не передаете заголовок X-Lognex-WebHook-Disable - он будет блокировать отправку веб-хука по данному событию
  3. Если веб-хук активен, попробуйте перенастроить его на тестовый url. Это можно сделать, отправив событие на обновление веб-хука https://online.moysklad.ru/api/remap/1.1/doc/index.html#веб-хуки-веб-хук-put, в url указав адрес тестовой страницы (мы рекомендуем для проверки использовать https://webhook.site/ , http://requestcatcher.com/  либо https://requestbin.fullcontact.com/) . После этого зайдите в ваш аккаунт и попробуйте произвести манимуляции  сущностью, которые должны привести к срабатыванию веб-хука. И проверьте факт наличия события получения веб-хука на тестовой странице.

Если веб-хук пришел на тестовую страницу, рекомендуем вам проверить работу вашего url для получения веб-хука. Обратите внимание, что ваш скрипт для корректной работы веб-хуков должен возвращать статус 200 либо 204

Подробнее о работе веб-хуков вы можете прочитать в документации https://online.moysklad.ru/api/remap/1.1/doc/index.html#веб-хуки

 

Если все вышеуказанное не помогло - обратитесь в нашу техподдержку, они обязательно вам помогут.

 

2) Текущая скорость работы АПИ приемлема для прикладных задач. Более того - мы сами являемся потребителями нашего АПИ, и в настоящий момент не имеем серьезных проблем с производительностью. В данный момент мы сосредоточены на расширении функциональности работы нашего АПИ в новой версии - запланированы большие доработки, которые давно ждут множество пользователей, такие как: увеличение лимита создаваемых веб-хуков, асинхронные задачи, расширение лимитов на получение списков объектов, расширения фильтрации и сортировок. 

Мы прислушиваемся к вашему мнению по поводу увеличение скоростти работы АПИ, но оптимизация - довольно весомая задача, и она отодвинула бы сроки выполнения новой функциональности. Оптимизация есть в списке запланированных работа на новой версии АПИ, но повторюсь еще раз - это трудоемкая задача. и она будет идти в параллель с разработкой новой функциональности, и займет некоторое время.

 

Итого: рекомендую вам все-таки опробовать наш функционал веб-хуков, и немного подождать следующей версии АПИ - надеюсь, его функциональность и скорость работы вас не разочарует =)

Екатерина Евтухова 3 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Спасибо большое за ваши оправдания. Про хуки понравилось. Также понравилось что к одному событию можно привязать только одну хуку. Про приемлемую работу АПИ - тоже молодцы. Думаю включить все ваши объяснения в код. Уверен он тогда в разы быстрее работать будет. Ну а насчет исправлений в будущих версиях я наверное так и скажу начальству - сворачиваем торговлю, пока не выйдет новая версия АПИ.

Максим 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Не мог пройти мимо)

Наша организация занимается настройкой интеграции с данным сервисом в рамках единого SaaS-решения, т.е. по факту через наш модуль интеграции в реальном времени обрабатываются данные около 500 клиентов.

При этом используются активно веб-хуки.

Должен отметить, что для такого большого кол-ва клиентов скорость апи иногда существенно повышает время обработки, но в целом, благодаря настроенному алгоритму время задержки по каждому клиенту при обработке заказов составляет от 2 до 8 минут (в среднем), время обмена остатками по всем товарам идёт непрерывно в реалтайме и занимает от 10 до 30 минут на каждого клиента.

Не хочу кидать камни ни в чей огород - у api МоегоСклада, конечно, есть свои недостатки, но при правильном использовании они несущественны на данный момент.

Андрей 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

> Проблем на нашей стороне с веб-хуками не наблюдается.

Особенно весело становится тем, кто построил себе интеграцию с сайтом через вебхуки, а потом решил подключить скажем RetailCRM. Вот весело-то становится.

Вася Садовников 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Ну да - при наличии нескольких интеграций функционал веб-хуков очень ограничен, но тут речь шла именно о проблемах в их работе.

Но, насколько я знаю, ничего не мешает перенастроить веб-хуки таким образом, чтобы изначально они приходили на сайт, а уже оттуда дублировались на другой сервис, если это необходимо. Ведь данные по веб-хукам можно без проблем получить по api и точно так же без проблем изменить их.

Андрей 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

> Но, насколько я знаю, ничего не мешает перенастроить веб-хуки таким образом, чтобы изначально они приходили на сайт, а уже оттуда дублировались на другой сервис, если это необходимо

Вот только другие сервисы не предлагают возможности указывать свои прокси для вебхуков.

И это ещё только полбеды. Если интеграцию с сайтом делали сами, то ок, какими-то другими способами можно и интеграцию с другими сервисами запилить.

Но если используются стандартные интеграции без участия программиста, то подключаем один сервис, другой сервис - и всё, облом.

Или заказали интеграцию компании, она сделала решение на вебхуках. Через полгода решили подключить ещё один сервис - типа "подключитесь к нам в 1 клик" -- и облом, нужны деньги и разработчики.

Вася Садовников 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

> тут речь шла именно о проблемах в их работе

То, что вебхуки совершенно неожиданно оказываются блокираторами интеграций -- это и есть те самые существенные проблемы в работе вебхуков. Они бьют больно и внезапно.

(Хотя и по технической стороне тоже есть вопросы -- например, про надёжность доставки вебхуков)

Вася Садовников 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

> Наша организация занимается настройкой интеграции с данным сервисом в рамках единого SaaS-решения, т.е. по факту через наш модуль интеграции в реальном времени обрабатываются данные около 500 клиентов.

Работать с АПИ в фоновом режиме конечно здорово. Но что делать если сайт сделан на php. Мне что службу отдельную делать для работы с МС? У вас при 500 клиентах работа занимает несколько минут. а у нас их 3500 человек. И кстати. камень в тех поддержку. Недавно просили их часть заказов перебросить на другой аккаунт. Нас вежливо послали, сказав что не могут этого сделать. Пришлось по АПИ переносить. Хотя странно. Они не могут перебросить заказы, а я могу.

Максим 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

> (Хотя и по технической стороне тоже есть вопросы -- например, про надёжность доставки вебхуков)

Вы все врете))) Тех поддержка сказала, что хуки работают корректно.

Максим 0 проголосовали
Действия с комментариями Постоянная ссылка