C# Katana OWIN版本控制
我不熟悉ASP.net、Katana等,但学习速度很快。最佳实践之一是为控制器使用版本。例如: {controller}/{connection} {controller}/{connection} startup.cs:C# Katana OWIN版本控制,c#,asp.net-web-api2,owin,C#,Asp.net Web Api2,Owin,我不熟悉ASP.net、Katana等,但学习速度很快。最佳实践之一是为控制器使用版本。例如: {controller}/{connection} {controller}/{connection} startup.cs: config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{version}/{controller}/{conn}/{cmd}", defaults: new
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{version}/{controller}/{conn}/{cmd}",
defaults: new
{
conn = RouteParameter.Optional,
cmd = RouteParameter.Optional
}
);
ConnectionController.cs(此功能正常)
[RoutePrefix(“v1/连接”)]
公共类连接控制器:ApiController
{
公共列表Get()
{
var state=ServerState.Create();
var conList=新列表();
foreach(var act in state.ActiveRadios)
{
conList.Add(法案通信);
}
返回列表;
}
这并不重要
[RoutePrefix("v1/Connection")]
public class V1ConnectionController : ApiController
{
public List<RadioComConnConfig> Get()
{
var state = ServerState.Create();
var conList = new List<RadioComConnConfig>();
[RoutePrefix(“v1/连接”)]
公共类V1ConnectionController:ApiController
{
公共列表Get()
{
var state=ServerState.Create();
var conList=新列表();
我缺少什么?您可以摆脱旧式的配置路由:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{version}/{controller}/{conn}/{cmd}",
defaults: new
{
conn = RouteParameter.Optional,
cmd = RouteParameter.Optional
}
);
并且只使用(就像你正在做的那样)
在您的WebApiConfig
中,对以下内容进行注释:
// config.Routes.MapHttpRoute(
// name: "DefaultApi",
// routeTemplate: "api/{version}/{controller}/{conn}/{cmd}",
// defaults: new
// {
// conn = RouteParameter.Optional,
// cmd = RouteParameter.Optional
// }
// );
并使用以下命令:
// Web API routes
config.MapHttpAttributeRoutes();
控制器顶部的路由前缀应如下所示:
[RoutePrefix("api/v1")]
或
并定义行动路线:
[Route("Connection")]
public List<RadioComConnConfig> Get()
{
}
[路由(“连接”)]
公共列表Get()
{
}
效果很好。我唯一遇到问题的是方法的参数,但很快就解决了。谢谢!
[RoutePrefix("api/v2")]
[Route("Connection")]
public List<RadioComConnConfig> Get()
{
}