8. Интеграция - gilgenbergg/green_office GitHub Wiki
Создание собственного внешнего API
Созданный сервис, реализованный на основе простейшего http сервера позволяет получить по url: http://localhost:27015/allPlannedCreqs список всех запланированных заявок с информацией о клиенте и растении, с которым они связаны. В ответ сервер формирует ответ в виде json. Сервер получает всю информацию о пользователе из фасада, сериализуя каждый объект из полученного после фильтрации по типу “planned” списка в json-строку. Для сериализации в json использовалась библиотека json-simple.1.1.
Ниже приведен пример возвращаемого ответа:
Обращение к внешнему сервису
В качестве “внешнего сервиса” (т.к. в рамках предметной области не было найдено ресурса, предоставляющего открытое API для получения и использования данных) был создан локально текстовый файл, эмулирующий информацию, получаемую по запросу о наличии ресурсов в магазине-партнере. Для работы с ним в пакете service был создан класс TheShop, работающий с файлом-каталогом и возвращающий значение типа boolean по итогу проверки наличия поданного на вход главного метода класса ресурса:
boolean checkItem(String item) - поиск осуществляется по названию ресурса.
Обращение к данному сервису происходит на этапе закупке от лица админа. При попытке внести в список купленных для растения в рамках конкретной заявки ресурса по названию, в случае отсутствия элемента в каталоге пользователь получает соответствующее сообщение. Добавление в список купленных элементов происходит только при “наличии” названия ресурса в файле-каталоге:
Данная “заглушка” в качестве внешнего сервиса с учетом архитектуры может быть легко заменена действительным внешним ресурсом при его нахождении.
Роль эмулятора - в подтверждении возможности такой интеграции в будущем при внесении доработок в систему.