【问题标题】:Is it necessary to duplicate data when using many web API services?使用许多 Web API 服务时是否需要复制数据?
【发布时间】:2015-10-08 15:16:27
【问题描述】:

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

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

使用 Web API 服务检索和管理此信息。

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

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

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

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

【问题讨论】:

    标签: c# asp.net web-services asp.net-web-api soa


    【解决方案1】:

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

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

    如果这是一项 REST 服务,我会将车辆数据库划分为不同的资源/文件夹/URL,以便应用程序可以询问他们有权使用的内容。 HTTP GET 查询的 URL 可能是 https://host/vehicle/type/{type}

    如果您想强制执行应用程序有权使用的内容,也许要考虑的另一件事是基于角色的安全性。提供的 URL 只允许那些被允许使用它们的人访问这些资源和凭据。

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

    【讨论】:

    • 感谢您的帮助。我会调查的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 2013-11-21
    • 2022-01-10
    • 2016-12-08
    相关资源
    最近更新 更多