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