【发布时间】:2017-02-23 05:29:41
【问题描述】:
我有一个 REST API,它将促进来自多个数据库的 CRUD。这些数据库都代表组织内不同位置的相同数据(IE 我们有大约 20 个软件包的实现,我们希望通过一个 API 从所有支持数据库中读取)。
我想知道促进从哪个数据库访问资源的“最佳实践”是什么?
例如,现在在我的请求标头中,我有一个自定义的“X-”标头,它将代表数据库 ID。不幸的是,这种事情感觉有点像解决方法。
我正在考虑其他一些选择:
- 我可以将数据库 ID 烘焙到 URI (/:db_id/resource/...) 中
- 我可以像使用 API 版本的人一样修改 Accept Header
- 我可以将 API 拆分为每个数据库一个服务
上述选项中的一个是否会被认为比其他选项“更好”,如果不是,那么对于这种架构,什么被认为是“最佳”选项?
我目前正在使用 ASP.NET Web API 2。
【问题讨论】:
标签: asp.net rest asp.net-web-api restful-architecture api-design