我有一个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也有类似的问题,但它错过了我想解决的一些敏感问题。)