Kotlin Swagger ui未显示控件文档

Kotlin Swagger ui未显示控件文档,kotlin,swagger-ui,swagger-2.0,openapi-generator,Kotlin,Swagger Ui,Swagger 2.0,Openapi Generator,我试图使用springfox swagger ui来记录我的rest服务。我在kotlin项目中使用了下一个基本配置: 这是我的摘要课: @Configuration @EnableSwagger2 open class SwaggerConfig { @Bean open fun newsApi(): Docket { return Docket(DocumentationType.SWAGGER_2) .groupName("

我试图使用springfox swagger ui来记录我的rest服务。我在kotlin项目中使用了下一个基本配置:

这是我的摘要课:

@Configuration
@EnableSwagger2
open class SwaggerConfig {

    @Bean
    open fun newsApi(): Docket {
        return Docket(DocumentationType.SWAGGER_2)
                .groupName("api-infos")
                .apiInfo(apiInfo())
                .directModelSubstitute(LocalDateTime::class.java, Date::class.java)
                .select()
                .paths(regex("/api.*"))
                .build()
    }

    private fun apiInfo(): ApiInfo {
        return ApiInfoBuilder()
                .title("Infos REST api")
                .description("Swagger test for Api ESPN")
                .termsOfServiceUrl("http://en.wikipedia.org/wiki/Terms_of_service")
                .contact("rodolfo.silva@globant.com")
                .license("Apache License Version 2.0")
                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html")
                .version("1.0")
                .build()
    }
}
这是我的控制器:

@Controller
@ProductApi(
        id = "v1_browse_player",
        title = "Browse Player (v1)",
        description = "")
@Api(value = "controller", description = "Controllers API", produces = "application/json")
@RequestMapping("/api/infos")
class BrowsePlayerController {

    @Autowired
    lateinit var browsePlayerService: BrowsePlayerServiceRepresentable

    @GetRequest(
            path = "/v1/browse/players",
            timeToLive = 300,
            queries = [
                QueryParameter(name = "swid", required = true),
                QueryParameter(name = "uid"),
                QueryParameter(name = "seeAll", type = java.lang.Boolean::class),
                QueryParameter(name = "lang", required = true),
                QueryParameter(name = "region", required = true),
                QueryParameter(name = "version", required = true, type = Integer::class),
                QueryParameter(name = "appName", required = true),
                QueryParameter(name = "platform", required = true)
            ]
    )
    @ApiOperation(value = "Get the players", notes = "Returns one info for playerBrowse")
    fun processBrowsePlayerRequest(transaction: Transaction, apiRequest: ApiRequest): Single<BrowsePlayerResponse?> {
        val applicationContext = RequestBasedApplicationContext(apiRequest)
        val standardContext = RequestBasedStandardContext(
                RequestBasedVersionContext(apiRequest),
                applicationContext,
                RequestBasedEditionContext(apiRequest, applicationContext),
                RequestBasedPlatformContext(apiRequest),
                transaction
        )
        val swidContext = RequestBasedSWIDContext(apiRequest)
        val uidContext = if (checkUIDPresent(apiRequest)) RequestBasedUIDContext(apiRequest) else null
        val seeAllContext = RequestBasedSeeAllContext(apiRequest)
        val requestBrowsePlayerContext = RequestBrowsePlayerContext(standardContext, swidContext, uidContext, seeAllContext, apiRequest)
        return browsePlayerService.getEntitiesBrowse(requestBrowsePlayerContext)
    }

    private fun checkUIDPresent(apiRequest: ApiRequest): Boolean =
            apiRequest.parameters["uid"] != null
}
@控制器
@ProductApi(
id=“v1\u浏览\u玩家”,
title=“浏览播放器(v1)”,
description=“”)
@Api(value=“controller”,description=“Controllers Api”,products=“application/json”)
@请求映射(“/api/infos”)
类BrowsePlayerController{
@自动连线
lateinit var browsePlayerService:BrowsePlayerServiceRepresentable
@获取请求(
path=“/v1/browse/players”,
timeToLive=300,
查询=[
查询参数(name=“swid”,required=true),
查询参数(name=“uid”),
QueryParameter(name=“seeAll”,type=java.lang.Boolean::class),
查询参数(name=“lang”,required=true),
查询参数(name=“region”,required=true),
QueryParameter(name=“version”,required=true,type=Integer::class),
QueryParameter(name=“appName”,required=true),
QueryParameter(name=“platform”,必需=true)
]
)
@ApiOperation(value=“获取玩家”,notes=“为玩家浏览器返回一条信息”)
fun processBrowsePlayerRequest(事务:事务,apiRequest:apiRequest):单个{
val applicationContext=RequestBasedApplicationContext(apiRequest)
val standardContext=RequestBasedStandardContext(
RequestBasedVersionContext(apiRequest),
应用上下文,
RequestBasedEditionContext(APRequest、applicationContext),
RequestBasedPlatformContext(apiRequest),
交易
)
val swidContext=RequestBasedSWIDContext(apiRequest)
val uidContext=if(checkUIDPresent(apiRequest))RequestBasedUIDContext(apiRequest)else null
val seeAllContext=RequestBasedSeeAllContext(apiRequest)
val requestBrowsePlayerContext=requestBrowsePlayerContext(标准上下文、swidContext、uidContext、seeAllContext、apiRequest)
返回browsePlayerService.getEntitiesBrowse(requestBrowsePlayerContext)
}
private fun checkUIDPresent(apiRequest:apiRequest):布尔值=
APIRESQUEST.parameters[“uid”!=null
}
我使用了一个非常基本的配置,即ApiOperation、Api和RequestMapping(“/Api/infos”)标记,也在数据类级别使用了下一个配置:

@JsonInclude(JsonInclude.Include.NON_NULL)
data class TopBrowsePlayerHeader(val title: String, val searchURL: String?)
@ApiModel(value = "Info entity", description = "Entity class BrowsePlayerResponse")
data class BrowsePlayerResponse(
        @ApiModelProperty(value = "The header of the info", required = false)
        val header: TopBrowsePlayerHeader,
        @ApiModelProperty(value = "The analytics node of the info", required = true)
        val analytics: Analytics,
        @ApiModelProperty(value = "The sections node of the info", required = true)
        val sections: List<Section>)
@JsonInclude(JsonInclude.Include.NON_NULL)
数据类TopBrowsePlayerHeader(val标题:字符串,val搜索URL:字符串?)
@ApiModel(value=“Info entity”,description=“entity class BrowsePlayerResponse”)
数据类BrowsePlayerResponse(
@ApiModelProperty(value=“信息的标题”,required=false)
val标题:TopBrowsePlayerHeader,
@ApiModelProperty(value=“信息的分析节点”,required=true)
val分析:分析,
@ApiModelProperty(value=“信息的节节点”,required=true)
val部分:列表)
当我加载(大摇大摆浏览器)时。我看不到我的控制器结构。似乎有一个预定义的端点,如下所示:

我不太熟悉这种配置。对正确的配置有什么想法吗


谢谢

尝试用
路径选择器替换
路径
值。any()

  • 招摇过市路径的默认值是
    /v2/api docs

    您可以使用
    springfox.documentation.swagger.v2.path
    键在
    application.properties
    中更改您想要更改的内容

  • ?group=api infos
    来自
    .groupName(“api infos”)

    如果出于任何原因(如特定客户端的选定API集)不想对API进行分组,请删除
    .groupName(…)


尝试将
路径
值替换为
路径选择器。any()

  • 招摇过市路径的默认值是
    /v2/api docs

    您可以使用
    springfox.documentation.swagger.v2.path
    键在
    application.properties
    中更改您想要更改的内容

  • ?group=api infos
    来自
    .groupName(“api infos”)

    如果出于任何原因(如特定客户端的选定API集)不想对API进行分组,请删除
    .groupName(…)

@Bean
open fun newsApi() : Docket {
    return Docket(DocumentationType.SWAGGER_2)
            .groupName("api-infos")
            .apiInfo(apiInfo())
            .directModelSubstitute(LocalDateTime::class.java, Date::class.java)
            .select()
            .paths(PathSelectors.any())
            .build()
}