Лучшие практики Mulesoft для подключения через API: можно ли вызывать системный API непосредственно из клиентского приложения (будь то веб / мобильное приложение)

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


person Naga    schedule 19.07.2019    source источник


Ответы (1)


Системный API предназначен для разблокировки или предоставления доступа к системному активу (внутренним данным). Теперь можно написать системный API таким образом, чтобы он извлекал данные из системной базы данных, выполнял необходимую обработку, например, преобразовывал строки таблицы в формат JSON, а затем выполнял некоторое обогащение и обрезку полей и предоставлял их клиенту. А. Это разносторонний подход. Теперь другому клиенту B требуются аналогичные данные, но ему нужны некоторые поля, которые уже были обрезаны вами, чтобы обслуживать клиента A, которому нужны только несколько полей из множества полей, которые вы выбрали из системы (базы данных). Вам нужно будет написать отдельный API-интерфейс для курса для клиента B. Кроме того, в будущем, если бэкэнд-система SYSTEM будет заменена новой SYSTEM, придется переписывать / обновлять API-интерфейсы для каждого клиента A и клиента B. .

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

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

person Rohan    schedule 20.09.2019
comment
Спасибо за ответ, Рохан, и извиняюсь за задержку с ответом. - person Naga; 20.02.2021