使用breezejs在javascript中获取查询信息不是很危险吗?

Dav*_*.id 21 javascript breeze

刚开始玩breeze.js因为编码时间明显增加,即直接在Javascript中管理从服务器访问模型数据(我在这里是新手,所以很明显没有!).

在过去,我使用股票ajax调用来获取/发布数据到服务器,我过去使用了一些不同的客户端工具来提供查询本地数据的一些帮助,例如jLinq.

我的问题是这个.在Javascript中拥有基本完整的模型查询访问权限不是很危险吗?我必须遗漏一些东西,因为它看起来像是一个经过深思熟虑的工具.在过去,我至少控制了可以通过后端查询过程发送给客户端的内容,并再次使用类似jLinq等的东西我可以过滤数据等.我也可以理解权衡可能获得直接查询/没有重复的本地模型问题,所以,如果有人能提供一些洞察力吗?

谢谢!

编辑 显然我不是唯一一个,但我猜测有一个合理的反应 - 可能限制使用DTO方法或其他东西要求的数据?发布的另一个问题是在这里

War*_*ard 14

暴露完整的商业模式可能很危险.允许无限制地查询您希望向客户端公开的模型部分可能是危险的.无论您提供易于查询的API还是难以查询的API,都是如此.

这就是为什么我们的团队小心我们如何构建我们的服务.

您应该只公开客户端应用程序所需的类型.如果要限制对类型的授权实例的访问,可以仔细编写规定的不可查询的服务方法.微风可以称他们为好.您不必为每个请求使用Breeze查询工具.您仍将受益于缓存,相关实体导航,更改跟踪,验证,保存捆绑,缓存查询,脱机支持.

重复:您的服务方法不必返回IQueryable.即使它们确实返回IQueryable,您也可以轻松编写服务方法,将查询结果限制为用户有权查看的实体.

幸运的是,您可以在同一服务或协作服务中混合使用这两种方法.

微风为您提供选择.你应该明智地行使这些选择.去那里设计您的服务以满足您的要求.

  • 我越是探索微风,显然应用上面的那些评论(这让我们的脸很常见 - 很容易"看到"技术解决方案作为某种独眼巨人的世界观!)我越是感受到一种模糊温暖的感觉浏览器和服务器世界终于被聚集在一起:) (2认同)