相关疑难解决方法(0)

如何使ASP.NET Web API与版本控制和帮助页面扩展一起使用?

我已经在我的WebAPI应用程序中实现了一个版本控制框架,并且非常希望能够使用Microsoft的新帮助页面扩展.

Microsoft.AspNet.WebApi.HelpPage

SDammann.WebApi.Versioning

很简单,我不知道如何让他们两个一起工作.我有2个项目:

  • AdventureWorks.Api(主要主机/根应用程序)
  • AdventureWorks.Api.v1(包含API的第一个版本的类库)

版本控制按预期工作.

我已经尝试在根应用程序上安装HelpPage包,当我浏览到帮助页面时,似乎没有找到任何控制器.在内部,我相信它使用:

Configuration.Services.GetApiExplorer().ApiDescriptions
Run Code Online (Sandbox Code Playgroud)

这没有返回结果,所以我收到一个错误.

任何人都可以协助我让这两个包一起工作吗?

编辑: 在开始时,我不确定这是一个路由问题,但最近的评论似乎暗示.这是我的RouteConfig.cs

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapHttpRoute(
            name: "SldExportAliasApi",
            routeTemplate: "api/v{version}/sld-export/{id}",
            defaults: new { id = RouteParameter.Optional, controller = "Export" }
        );

        routes.MapHttpRoute(
            name: "LinkRoute",
            routeTemplate: "api/v{version}/link/{system}/{deployment}/{view}",
            defaults: new { controller = "Link" }
        );

        routes.MapHttpRoute(
             name: "DefaultSubParameterApi",
             routeTemplate: "api/v{version}/{controller}/{id}/{param}",
             defaults: new { id = RouteParameter.Optional, param = RouteParameter.Optional }
        );

        routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/v{version}/{controller}/{action}/{id}",
            defaults: new { action = "Index", …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-web-api

21
推荐指数
1
解决办法
8150
查看次数

标签 统计

asp.net-mvc ×1

asp.net-web-api ×1

c# ×1