一个控制器在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