【发布时间】:2020-06-04 11:39:12
【问题描述】:
我在 SwaggerUI 中的显示端点有问题。 例如
[ApiVersion("5.0")]
[RoutePrefix("mobile/v{version:apiVersion}/persons")]
public class LessonController : ApiController
{
-------------------------------------
[HttpGet]
[Route("{personId}/groups/{groupId}/lessons/{lessonId}/lessonDetails")]
public LessonDetailsModel LessonDetails(long personId, long groupId, long lessonId)
{
----------------------------------
它的端点不显示,但如果我将 RoutePrefix 更改为
[RoutePrefix("mobile/v{version:apiVersion}/persons1")]
端点秀
更新: SwaggerConfig
GlobalConfiguration.Configuration
.EnableSwagger("mobile/swagger/docs/{apiVersion}", c => {
c.MultipleApiVersions(
ResolveVersionSupportByRouteConstraint,
(vc) =>
{
vc.Version("v5.0", "Api version 5");
vc.Version("v4.0", "Api version 4");
------------------------------------------------------
});
c.UseFullTypeNameInSchemaIds();
c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
c.OperationFilter<RemoveVersionParameters>();
c.OperationFilter<InjectCustomApiParameters>();
c.DocumentFilter<SetVersionInPaths>();
c.IncludeXmlComments(Path.ChangeExtension($"{Assembly.GetExecutingAssembly().GetName().CodeBase}", ".xml"));
})
.EnableSwaggerUi("mobile/swagger/ui/{*assetPath}", c => {
c.DocumentTitle("Mobile Api Swagger");
c.DisableValidator();
c.EnableDiscoveryUrlSelector();
});
【问题讨论】:
-
请向我们展示您的 Startup 的
ConfigureServices和Configure方法的样子。请仅包含相关部分。 -
BTW here is a walkthrough 如何使用 Swashbuckle 实现版本控制
-
我是更新问题
-
嗯,这很有趣。
MultipleApiVersions和EnableDiscoveryUrlSelectorcalas 在那里...这个 v5.0 对我来说很奇怪,老实说,我没有在 API 版本中看到次要版本。您是否尝试过没有次要版本,所以只有主要版本? (v4 和 v5) -
很遗憾,这并不影响显示,我发现只是改变RoutePrefix,可能IHttpControllerSelector表现不佳
标签: c# asp.net swagger swashbuckle .net-4.8