4

我有一个使用命名空间版本控制的 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?(基本上只需要更换那个句号)。理想情况下,我不想使用路由属性。

(这里有一个与我类似的问题,但它遗漏了一些我想解决的尖锐问题。)

4

0 回答 0