对于我的场景,我不明白如何利用Web API

时间:2012-07-06 21:10:18

标签: c# asp.net asp.net-mvc web-services

我正在设计一组不需要典型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是未来之路。有什么建议吗?

1 个答案:

答案 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