访问Web API模式

时间:2013-08-10 21:46:54

标签: c# asp.net-mvc design-patterns

在这种情况下,我有一个需要的Web应用程序:

  • 通过Web API层访问它的核心数据库(因此我无法直接访问其存储库/ uow)

  • 访问其他外部第三方API以获取其他数据/操作

建议用于包装和连接这些单独API的最佳做法/模式是什么?

2 个答案:

答案 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语法自定义查询,如上所述。