Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对于我的场景,我没有';我不明白如何利用Web API_C#_Asp.net_Asp.net Mvc_Web Services - Fatal编程技术网

C# 对于我的场景,我没有';我不明白如何利用Web API

C# 对于我的场景,我没有';我不明白如何利用Web API,c#,asp.net,asp.net-mvc,web-services,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 = "") { .

我正在设计一套不需要典型CRUD功能的API。我只需要向客户端提供数据,这涉及到对从后端数据库获取的数据应用各种过滤器。例如,目前我有以下API:

Service.asmx/GetEvents
签名如下:

public CustomObject GetEvents(string Location = "", string Company = "", string PersonType = "", string FromDate = "", string ToDate = "")
{
    ....
}

如果我所有的API看起来都像这样,我该如何使用MVC4WebAPI?我目前在项目和Web服务的其余部分使用AVC4只是为了公开API,我确信这是一种错误的做法。我对我目前的服务很满意,但我确实看到一些帖子散布在博客圈中,说WebAPI是未来的发展方向。有什么建议吗?

您可以编写一个从动作派生并公开动作的控制器。您还可以将过滤器逻辑封装到模型中:

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的更多信息,我建议您从官方网站开始:

您是指带有Microsoft MVC4的Web API吗?@EkoostikMartin:是的。编辑我的问题。谢谢。据我所知,asp.net web api的工作原理类似于asp.net mvc中的控制器,其中每个方法表示一个调用。使用web api的主要原因是接受不同类型的输入并返回不同类型的响应(例如,相同的方法可以返回您为其创建序列化程序的json/xml/自定义格式化程序)