名前空間のバージョン管理を使用してバージョン管理した 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 が使用するパスを編集する方法を知っている人はいますか? (基本的には、そのフルストップを置き換えるだけです)。理想的には、ルーティング属性を使用したくありません。
(ここに私のものと同様の質問がありますが、私が対処したいいくつかの鋭い点が欠けています。)