在我的Angular.js应用程序中 - 我应该绑定到Web API提供的模型

时间:2013-09-10 11:26:31

标签: angularjs asp.net-web-api

我正在使用Angular和ASP.Net MVC构建应用程序。

我在应用程序中使用的所有数据都是由Web API提供的(我正在向我的ASP.Net控制器发出Ajax调用,后者又调用Web API并将API的响应返回到html页面)。

web api使用的模型很好地映射了我的需求,我真的不需要改变任何东西。

但是我应该简单地绑定到Web API提供的模型吗?我所看到的风险是,如果Web API发生任何变化,我可能最终会在我的应用程序中全部更改。如果我在一个地方将web api模型翻译成我自己的模型,我只需要在那里进行更改。

但另一方面 - 将Web API模型映射到我自己的模型似乎是一项非常不必要的工作,当模型最终几乎完全相同时。

3 个答案:

答案 0 :(得分:1)

Keep things simple,当您控制应用程序的两面时引入映射层似乎是不必要的。

仅在需要时引入额外的复杂性,例如在我们的应用程序中,我们使用asp.net w / Nancyfx作为我们的rest api。我们有几次从api映射到模型,但这些是特殊情况(包含数据但行为的模型)。

答案 1 :(得分:0)

我们使用mapper的一个地方是将.net属性Pascal case映射到json属性camelCase。

但是看看this blog post,即使这可以通过提供正确的媒体格式化器来解决,因此可以删除映射层。

应根据具体情况使用映射层。希望对你有所帮助。

答案 2 :(得分:0)

1 - 浏览器调用WebAPI

2 - WebAPI返回JSON数据 - 实际上是域(或模型)对象 - 数据库表的副本。

3 - Javascript根据您的演示文稿将这些JSON对象转换为不同的对象(演示文稿总是很复杂 - 表格,图形,列表,格式化的事物,数据透视表)。

4 - HTML绑定到那些复杂的javascript对象

你可以在这里找到非常漂亮的例子:upida4net.codeplex.com 淘汰赛和角球。