使用很多网络API服务时是否需要复制数据?

Is it necessary to duplicate data when using many web API services?

我正在创建一个基于多个 Web API 服务的架构,我正在寻找构建数据的最佳方式。当前结构中正在复制数据。

我有一个应用程序数据库和 Web API 项目,用于存储和管理公司内正在创建的所有应用程序。这包含名称和 GUID。

此信息是使用网络 API 服务检索和管理的。

我还有另一个 API 管理车辆类型的服务和数据库。我遇到的问题是某些车辆类型只能由某些应用程序使用。因为这, 车辆类型系统需要了解应用程序数据库中存在的应用程序。例如,客户端可以发出获取请求以查看特定应用程序有权访问的所有车辆类型。

所以在这个数据库中我会有三个 tables,车辆类型,应用程序,车辆类型应用程序链接。 我需要在车辆类型数据库中完整复制应用程序数据库才能管理此映射。

这种重复感觉不太对。数据必须在多个地方进行管理并保持同步。 这也不是孤例。随着公司基础设施的发展,许多其他服务将对产品 table 产生很大的依赖性。 我不愿意到处复制。

对于在这种情况下管理数据的最佳方式,您有什么想法吗?

我不会在车辆服务中嵌入应用知识。那不会扩展。

我还想知道为什么管理车辆类型不是单一车辆服务的范畴。

如果这是一个 REST 服务,我会将车辆数据库分成不同的 resources/folders/URLs,这样应用程序就可以请求它们有权访问的内容。 HTTP GET 查询的 URL 可能是 https://host/vehicle/type/{type}

如果您想强制执行应用程序有权使用的内容,也许要考虑的另一件事是基于角色的安全性。提供 URL 仅向获准使用这些资源和凭据的人授予对这些资源和凭据的访问权限。

听起来车辆服务是应用程序在交易中使用的参考数据。应用程序可以请求车辆实例,但不是 "duplication"。车辆服务仍然是真相的来源。