我有一个使用命名空间版本控制的 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?(基本上只需要更换那个句号)。理想情况下,我不想使用路由属性。
(这里有一个与我类似的问题,但它遗漏了一些我想解决的尖锐问题。)