0

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

4

1 回答 1

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

于 2012-07-07T07:31:15.997 回答