一个控制器在ASP.Net WebAPI中的多种方法

这是StackOverflow上的第一篇文章。 我是WebAPI的新手。

ASP.Net中的WebService已经在运行并正常运行。 我们公司希望将Web服务转换为ASP.Net WebAPI。 我有一个简单的几类随机函数,它接受多个参数并返回字符串或布尔值或小数。 请记住,所有15个方法都没有关系,比如你可以说类名是“GeneralKnowledge”,这里有几个函数

1. public string GetPresidentName(DateTime OnTheDate,string CountryName)
2. public DateTime GetReleaseDateOfMovie(string MovieName)
3. public void AddNewCityNames(string[] CityNames)

他们都是Web服务中的WebMethod。 我想创建WebAPI,我将从C#.Net WinForm应用程序调用它们或与其他人共享此API以收集更多数据并共享更多数据

主要问题是,我应该为每个方法或一个控制器下的操作创建单独的控制器。

当任何人在一个控制器下创建多个方法时,您可以共享任何示例代码吗?

感谢你Ishrar。


您可以根据需要在控制器中执行尽可能多的操作。 只需使用属性路由属性routing-in-web-api-2即可

我不建议在一个控制器中添加15个动作。 您可以将它们聚合成少数控制器(如PresidentController,MovieController,RegionController)。 如果你的行为没有任何共同点,那么你可以创建许多不同的控制器。 具有一个动作的15个控制器更容易维护并且通过15个动作读取一个控制器。 但最好的选择是创建几个控制器,每个控制器都有少量动作。

样品控制器:

[RoutePrefix("api/presidents")]
public class PresidentsController : ApiController
{
    [Route("GetFirstPresident/{countryName}")]
    public IHttpActionResult GetFirstPresident(string countryName)
    {
        var president = string.Format("First president of {0} was XYZ", countryName);
        return Ok(president);
    }

    [Route("GetPresident/{number}/{countryName}")]
    public IHttpActionResult GetPresident(int number, string countryName)
    {
        var president = string.Format("{1} president of {0} was XYZ", countryName, number);
        return Ok(president);
    }
}

WebApiConfig.cs:

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services
        // Configure Web API to use only bearer token authentication.
        config.SuppressDefaultHostAuthentication();
        config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}
链接地址: http://www.djcxy.com/p/62579.html

上一篇: Multiple Methods in one Controler in ASP.Net WebAPI

下一篇: C# Repository and Service