Angular SPA调用多个API的最佳实践?
我的团队正试图找出解决以下问题的最佳体系结构。我希望能够找到任何针对我们情况的现有建议,但很难搜索Angular SPA调用多个API的最佳实践?,angular,api,design-patterns,architecture,single-page-application,Angular,Api,Design Patterns,Architecture,Single Page Application,我的团队正试图找出解决以下问题的最佳体系结构。我希望能够找到任何针对我们情况的现有建议,但很难搜索 我们有一个带有SPA、ASP.NET WebAPI后端和数据库的应用程序A 我们还有另一个内部WebAPIB,用于存储和服务文件以及与应用程序无关的元数据B有自己的数据库。这个API也属于我们的团队,但最终会被其他应用程序使用 A有一个特定于A的文档元数据表。这些记录表示A中文件与其他内容的附件,并包含B中文件记录的ID 要列出给定项目的附件,a前端获取a文档记录,然后使用调用a的结果从B获取
- 我们有一个带有SPA、ASP.NET WebAPI后端和数据库的应用程序A
- 我们还有另一个内部WebAPIB,用于存储和服务文件以及与应用程序无关的元数据B有自己的数据库。这个API也属于我们的团队,但最终会被其他应用程序使用
我们想通过将上传返回的数据复制到A的元数据中的B来消除第二次调用 因此,我的问题是:
谢谢我想我们可以谈谈微服务 对于数据复制,这取决于您希望如何处理它。您的数据必须始终是最新的 如果它是一种数据,您可以将数据复制到后端。例如:发票中的一行 否则,您可以从A后端调用B后端来合并数据,并只向客户端(前端)发送有用的信息 您的客户端必须只知道一个端点 因为,如果您有3个具有相同功能的客户端(例如:网站、移动应用程序、tab应用程序)。明天,B发生变化,您必须到处检查前端代码 然而,如果只有A知道B,则将连接更改为A。一般来说,它对你的客户是透明的
有人说:我正在考虑做一件类似的事情:SPA调用多个自有和/或第三方API,具有多个客户端SPA的潜力 为此,我将创建一个代理API,负责在适当的时间将调用传递给其他每个API (代理API不仅仅是一个代理,因为它可以执行自己的操作——它更像是一个业务层。可以随意调用它。) 客户端将只与代理api对话,而不了解真正的api 每个API将只负责适用于该API的数据,但可以根据需要与代理API通信以从其他API获取数据 例如:客户端C需要从API A1、A2和A3检索和/或存储信息。我们创建代理api P.C向P请求A1和A2的组合数据。P要求A1提供数据,然后要求A2提供数据。P组合数据并将其发送给C。P组合数据而不是C的原因是多个客户端可能需要相同的组合数据 除非绝对必要,否则我将避免重复数据。您可以将键存储在其他数据存储的表或对象中,但不能存储在数据本身中——否则,如果一个或另一个API出现问题,您将面临脏数据 如果需要,代理API还可以负责针对每个API进行授权/身份验证
这样,每个客户端都可以与相同的代理api通信,客户端代码无需更改。A和B后端有不同的数据库?是的,我会编辑。它们恰好是dev中的同一个SQL实例,但不一定是在生产环境中。