我正在设计一组不需要典型CRUD功能的API。我只需要向客户端提供数据,这涉及对从我的后端数据库获取的数据应用各种过滤器。例如,目前我有以下API:
Service.asmx/GetEvents
具有以下签名:
public CustomObject GetEvents(string Location = "", string Company = "", string PersonType = "", string FromDate = "", string ToDate = "")
{
....
}
如果我的所有API看起来都像这样,我如何使用MVC4 Web API?我目前正在为我的项目和Web服务的其余部分使用AVC4来公开API,我确信这是一种错误的做事方式。我对目前的服务感到满意,但我确实看到分散在SO和博客圈的几篇帖子,Web API是未来之路。有什么建议吗?
答案 0 :(得分:1)
您编写的控制器派生自ApiController并公开操作。您还可以将过滤器逻辑封装到模型中:
public class Filter
{
public string Location { get; set; }
public string Company { get; set; }
public string PersonType { get; set; }
public string FromDate { get; set; }
public string ToDate { get; set; }
}
和控制器:
public EventsController: ApiController
{
public CustomObject Get(Filter filter)
{
...
}
}
现在假设默认路由,您的API已准备好在/api/events
消费。
如果您想了解有关Web API的更多信息,我建议您从官方网站开始:http://www.asp.net/web-api