【发布时间】:2013-06-29 22:18:39
【问题描述】:
我需要构建一个庞大的 API,并且我正在尝试使用 WebAPI 而不是默认的 MVC4 项目,但这似乎只会让事情变得更加困难。
- 控制器
Get, Post, Put, Delete中只能有 4 个方法,如果我想要更多,我需要修改该特定方法的路由 - FluentValidation 不适用于 WebAPI,因此我需要使用我真的不想使用的 DataAnnotations。
- 不能使用
dynamic返回数据类型
我的问题是:如果我使用 MVC4 项目并使用返回 Json 的默认 ActionResults 真的会那么糟糕吗?使用 WebAPI 的真正优势是什么,如果您可以轻松地将项目转换为 API,为什么他们甚至首先制作它们?
【问题讨论】:
-
我们设法将 FluentValidation 集成到 WebApi 中。我们所要做的就是实现一个自定义的 ModelValidatorProvider。有关更多详细信息,请参阅此 SO:stackoverflow.com/questions/12975291/…。对于“动态”数据类型,我不明白您为什么要向客户端返回
dynamic。您的意思是匿名对象吗? -
如果您只关心 JSON,那么您可以从 Web API 控制器返回一个动态对象。 (XML序列化器不支持动态。)对于路由,您可以使用基于动作的路由(在路由模板中放置“{action}”,或者使用基于属性的路由。
标签: c# asp.net-mvc asp.net-mvc-4 asp.net-web-api