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