Ответ вслух Middle Обмены и интеграции обновлено

Спроектируйте API для сайта

Вопрос

Сайту нужно получать из 1С остатки и цены и отправлять в 1С заказы. Как спроектируете интеграцию?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Делаю HTTP-сервис с ресурсами /stock, /prices и /orders. Сайт ходит под отдельным пользователем с ролью только на эти операции, через HTTPS.

Что должно прозвучать в ответе

  • HTTP-сервис с понятными ресурсами: остатки, цены, заказы

  • Авторизация отдельным пользователем с минимальными правами, HTTPS

  • Остатки и цены пакетами и инкрементально, без запросов в цикле

  • Заказы идемпотентно по внешнему ID, ответ с номером документа

  • Логирование обменов, обработка ошибок, коды ответа

  • Нагрузка: кеш или выгрузка по расписанию вместо запроса на каждый просмотр

Что могут спросить следом

  • Почему не давать сайту доступ к OData целиком?
  • Как поступить, если 1С недоступна?

Разбор

Делаю HTTP-сервис с ресурсами /stock, /prices и /orders. Сайт ходит под отдельным пользователем с ролью только на эти операции, через HTTPS. Остатки и цены отдаю пакетом одним запросом, с параметром «изменения после даты», чтобы сайт не тянул всё каждый раз. Заказ сайт отправляет POST с внешним идентификатором, 1С создаёт документ и возвращает его номер, а повтор с тем же идентификатором возвращает уже созданный. Ответы с понятными кодами: 400 при ошибке данных, 409 при конфликте. Все вызовы логирую в регистр сведений. Чтобы 1С не была узким местом, остатки сайт кеширует или получает выгрузкой по расписанию, а заказы при недоступности 1С складывает в очередь.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме