这是我有一个需要的 Web 应用程序的情况:
通过 Web API 层访问它的核心数据库(所以我不能直接访问它的存储库/uow)
访问其他外部第三方 API 以获取更多数据/操作
建议包装和连接到这些单独的 API 的最佳实践/模式是什么?
这是我有一个需要的 Web 应用程序的情况:
通过 Web API 层访问它的核心数据库(所以我不能直接访问它的存储库/uow)
访问其他外部第三方 API 以获取更多数据/操作
建议包装和连接到这些单独的 API 的最佳实践/模式是什么?
哈好吧,我现在明白了 :) 这实际上取决于您使用的数据量和请求量。例如,如果数据非常小,您可以在客户端拥有一个包含数据的本地缓存,如果它们不经常更改,您可以将它们复制到您的一个数据库中,并且只需订阅远程 Web 服务上的更新。
所以是的,如果您确实有很多请求,但在您必须管理缓存和更新的一致性之后,这可能是有意义的。
对我来说,我会将它包含在 DAL 中并统一外观背后的所有内容,以便您的客户以相同的方式使用内部和外部数据。
对于缓存,这取决于,客户端缓存,服务器缓存,“SQL ws-* 复制”,...
但它再次取决于数据的种类/数量和可接受的负载/请求。
也许更多细节?(对我来说没有正确答案,已经取决于上下文、目标、时间、预算等......)
免责声明:我是 Entity REST SDK 的作者。
使用 Web API 访问数据库将导致安全噩梦,因为您必须为每个操作编写安全规则。那是相当乏味的。
因此,我们创建了 Entity REST SDK,它可以让您快速设置 REST API 以及安全规则作为简单的 lambda 表达式,它可以完成大部分与安全相关的逻辑。
安全上下文也适用于字段级别,因此如果管理员请求一个对象,他将收到所有字段,但如果用户从同一个 url 请求相同的对象,他将只会收到某些字段。这同样适用于修改和外键。
https://entityrestsdk.codeplex.com/
我们还有 JSON 到 LINQ 转换器,它可以让您在查询字符串中使用 JSON 语法自定义查询,如解释的那样。