あなたの要件によると、Microsoft/aspnet-api-versioningに続いて、azureモバイルアプリプロジェクトのバージョンを確認しました。あなたの目的を達成するために、以下の詳細を参照することができます。
Microsoft.AspNet.WebApi.Versioningパッケージをインストールします。
テーブル/ v1.0を/ todoitem
[ApiVersion("1.0")]
[RoutePrefix("tables/v{version:apiVersion}/todoitem")]
public class TodoItemController : TableController<ToDoItem>
{
private MobileServiceContext context;
protected override void Initialize(HttpControllerContext controllerContext)
{
base.Initialize(controllerContext);
context = new MobileServiceContext();
DomainManager = new EntityDomainManager<ToDoItem>(context, Request);
}
[Route]
// GET tables/v{version}/todoitem
public IQueryable<ToDoItem> GetAllTodoItems()
{
return Query();
}
}
を:あなたの
TableController
については
public static void ConfigureMobileApp(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
var constraintResolver = new DefaultInlineConstraintResolver()
{
ConstraintMap =
{
["apiVersion"] = typeof(ApiVersionRouteConstraint)
}
};
config.AddApiVersioning();
config.MapHttpAttributeRoutes(constraintResolver);
//your mobile configuration
app.UseWebApi(config);
}
を次のように、あなたはそれを定義することができます。
次のようにあなたのStartup.MobileApp.cs
にAPIのバージョン管理を有効にします
テーブル/ v2.0/todoitem
[ApiVersion("2.0")]
[ControllerName("TodoItem")]
[RoutePrefix("tables/v{version:apiVersion}/todoitem")]
public class TodoItemV2Controller : TableController<ToDoItem>
{
private MobileServiceContext context;
protected override void Initialize(HttpControllerContext controllerContext)
{
base.Initialize(controllerContext);
context = new MobileServiceContext();
DomainManager = new EntityDomainManager<ToDoItem>(context, Request);
}
[Route]
// GET tables/v{version}/todoitem
public IQueryable<ToDoItem> GetAllTodoItems()
{
return Query();
}
}
詳細については、ASP.NET API Versioningを参照してください。
返信いただきありがとうございます。 Azure Mobile App(AMS)プロジェクトを使用しているので、この方法でルーティングすることはできません。 –