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

正しい URL を作成できるように、Swagger が使用するパスを編集する方法を知っている人はいますか? (基本的には、そのフルストップを置き換えるだけです)。理想的には、ルーティング属性を使用したくありません。

(ここに私のものと同様の質問がありますが、私が対処したいいくつかの鋭い点が欠けています。)

4

0 に答える 0