Java 合并模式招摇过市UI Micronaut
我正在尝试合并micronaut swagger UI中的附加文件模式。我认为该文件在构建期间没有被拾取,不确定如何为附加文件设置正确的路径 在资源内部存在附加文件 在application.yml配置中,我设置了以下配置Java 合并模式招摇过市UI Micronaut,java,swagger,swagger-ui,micronaut,micronaut-client,Java,Swagger,Swagger Ui,Micronaut,Micronaut Client,我正在尝试合并micronaut swagger UI中的附加文件模式。我认为该文件在构建期间没有被拾取,不确定如何为附加文件设置正确的路径 在资源内部存在附加文件 在application.yml配置中,我设置了以下配置 micronaut: openapi: additional: files= src/main/resources/swagger/swaggerSecuritySchemes.yml swaggerSecuritySchemes.yml secu
micronaut:
openapi:
additional:
files= src/main/resources/swagger/swaggerSecuritySchemes.yml
swaggerSecuritySchemes.yml
securitySchemes:
Open Id Connect:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://falconidentityserver.azurewebsites.net/connect/authorize
tokenUrl: https://falconidentityserver.azurewebsites.net/connect/token
refreshUrl: ""
scopes:
openid: Open Id scope
profile: Name scope
email: Email scope
usePkceWithAuthorizationCodeGrant: true
在buildswagger-yml文件中,这些配置不存在,我认为在构建过程中没有选择该文件,我们如何设置附加文件的路径
来自micronaut文档
micronaut.openapi.additional.files={project.home}/src/test/resources/swagger
什么是project.home
我在build.gradle文件中尝试了以下代码,但它没有合并其他文件中的任何内容
tasks.withType(JavaCompile).all {
options.fork = true
options.forkOptions.jvmArgs << '-Dmicronaut.openapi.views.spec=swagger-ui.enabled=true,swagger-ui.theme=MATERIAL'
options.forkOptions.jvmArgs << '-Dmicronaut.openapi.additional.files=src/main/resources/swagger'
options.compilerArgs += ['--enable-preview']
}
包括上述定义合并了配置,但是在最终文档中,clientId、clientSecret和usePkceWithAuthorizationCodeGrant未合并,为什么?如文档所述,顺序如下: 要配置其他招摇过市文件的路径,需要设置系统属性micronaut.openapi.additional.files
micronaut.openapi.additional.files
应作为构建的系统属性添加,因为openapi文档是在构建/编译时生成的,而不是在运行时生成的,因此将此属性添加到application.yml
(运行时)配置将无效
格拉德尔:
如果您使用的是gradle,则可以添加此micronaut.openapi.additional.files
属性:
- 要在启动生成时创建命令行系统属性,请执行以下操作:
$ ./gradlew build -Dmicronaut.openapi.additional.files=src/main/resources/swagger
$ mvn clean compile -Dmicronaut.openapi.additional.files=src/main/resources/swagger
- 到您的项目gradle.properties,从而避免在每次生成时添加系统属性:
systemProp.micronaut.openapi.additional.files=src/main/resources/swagger
<properties> <micronaut.openapi.additional.files>src/main/resources/swagger</micronaut.openapi.additional.files> </properties>
micronaut.openapi.additional.files
属性:
- 要在启动生成时创建命令行系统属性,请执行以下操作:
$ ./gradlew build -Dmicronaut.openapi.additional.files=src/main/resources/swagger
$ mvn clean compile -Dmicronaut.openapi.additional.files=src/main/resources/swagger
- 将pom.xml作为项目属性添加到项目描述符中,从而避免在每次生成时添加系统属性:
systemProp.micronaut.openapi.additional.files=src/main/resources/swagger
<properties> <micronaut.openapi.additional.files>src/main/resources/swagger</micronaut.openapi.additional.files> </properties>
src/main/resources/swagger
micronaut.openapi.additional.files
属性指向的是目录路径(src/main/resources/swagger),而不是文件路径,因为文档没有提到此属性将目录而不是显式文件作为其值
据我所知,附加文件不支持
securitySchemes
声明,只会合并路径
文档。但我可能错过了一些细节,或者可以在micronaut openapi存储库中随意查看。这对我来说很有效,请尝试以下方法:
步骤1:在根目录中创建一个名为openapi
的文件夹
步骤2:然后在openapi文件夹中手动创建yml,并根据(openapi规范)
在文件中提及您的模式
步骤3:现在将这两个文件与生成的OpenAPI定义合并。您需要指向Micronaut以在OpenAPI文件夹中查找其他OpenAPI
yaml文件。因此,您需要设置属性micronaut.openapi.additional.files
要将micronaut指向openapi文件夹:
步骤1:在根目录中查找openapi.properties
文件。如果文件不存在,请创建一个
步骤2:一旦我们有了文件,就将其粘贴到文件->micronaut.openapi.additional.files=openapi
确认:确认micronaut在此过程后是否正在合并文件。服务器启动时请注意日志
如果流程成功,您应该能够看到以下内容:-
Note: Merging Swagger OpenAPI YAML files from location: whateverDirectory/openapi
Note: Reading Swagger OpenAPI YAML file YourFileName.yml
感谢您提供的信息,我厌倦了options.forkOptions.jvmArgs,我认为路径对我不起作用…..这是存储库Hey@SanJaisy,请您更新您的线程以提及编辑帖子答案,以允许增量信息更新。请您也添加编译输出,好吗?您也记下我关于*securitySchemes*的笔记了吗?据我所知,答案应该是可以接受的,因为问题在于yaml文件内容。