使用带有名称空间的ASP.NET WebAPI的Swagger / Swashbuckle

时间:2016-01-18 18:05:51

标签: c# asp.net-web-api swagger swashbuckle

我有一个ASP.NET Web API应用程序,我使用命名空间版本控制版本。

例如,可以在 api / v1 / Location / Process 访问此方法:

namespace Project.Controllers.V1
{
  public class LocationController : BaseController
  {
    [HttpsRequired, HttpGet]
    public async Task<ApiResponse> Process(string sessionToken, string id)

设置Swagger以使用MultipleApiVersions方法处理此设置:

c.MultipleApiVersions((apiDesc, version) => {
         var path = apiDesc.RelativePath.Split('/');
         var pathVersion = path[1];

        return CultureInfo.InvariantCulture.CompareInfo.IndexOf(pathVersion, version, CompareOptions.IgnoreCase) >= 0;
     },
     vc => {
          vc.Version("v1", "Foundbite Client API V1");
     });

但是,当生成Swagger UI时,方法在URL中具有完整的命名空间和控制器名称: api / V1.Location / Process

任何人都知道如何编辑Swagger将使用的路径,以便我可以创建正确的URL? (基本上只需要更换那个fullstop)。理想情况下,我不想使用路由属性。

(我的here也有类似的问题,但它错过了我想解决的一些敏感问题。)

0 个答案:

没有答案