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