API 主导连接的 Mulesoft 最佳实践,是否可以直接从客户端应用程序调用系统 API(是 web/mobile)

Mulesoft best practices for API-led connectivity , is it okay to invoke System API directly from the client application(be it web/mobile)

这个问题的主要原因是 understand/reasons 落后于系统 API 的使用最佳实践。如果系统 API 本身足够好,可以满足我的客户端应用程序的目的,我们是否还需要编写体验 API 来间接调用系统 API,或者打破规则,只需直接从客户端应用程序调用 system-API 即可。有时,它是 overhead/numerous API 通过网络调用。

系统API解锁或暴露系统资产(后端数据)。现在,可以这样编写系统 API,从系统数据库中获取数据,进行所需的处理,例如将 table 行转换为 JSON 格式,然后执行对字段进行一些丰富和修整,并将其展示给客户 A。这是一种粗粒度的方法。现在,另一个客户 B 需要类似的数据,但需要一些已经被您修剪过的字段来服务客户 A,客户 A 只需要您从系统(数据库)中选择的许多字段中的少数字段。您必须为客户 B 编写一个单独的粒度 API 课程。 此外,将来如果后端系统被新系统替换,则必须 re-write/update 每个客户 A 和客户 B 的 API。

这种粗粒度的方法每次都能解决您的问题,但在架构上采用细粒度的方法将大型服务分解为多层体验、流程和系统 API 将能够重用,减少工作量,增加上市时间,降低总拥有成本,并允许通过体验 API 层为每个客户应用所需的单独策略(安全、sla 等)。您现在可以更好地扩展集成环境。

细粒度的方法会增加网络、磁盘空间(更多日志记录)等资源的使用,但这是对您获得的所有许多优势的权衡。同样,采用任何一种方法的决定都应与您的生态系统的当前情况保持一致,因此一切都取决于。