【发布时间】:2020-05-09 11:29:23
【问题描述】:
按照这里的文档 - https://micronaut-projects.github.io/micronaut-openapi/1.3.4/guide/index.html
我将我的build.gradle 配置为包含用于 swagger yaml 生成的编译时任务,如下所示-
tasks.withType(JavaCompile){
options.encoding = "UTF-8"
options.compilerArgs.add('-parameters')
options.fork = true
options.forkOptions.jvmArgs << '-Dmicronaut.openapi.views.spec=rapidoc.enabled=true,swagger-ui.enabled=true,swagger-ui.theme=flattop'
}
这就是我的application.yaml 的样子-
micronaut:
server:
port: 9090
cors:
enabled: true
router:
static-resources:
swagger:
paths: classpath:META-INF/swagger
mapping: /swagger/**
redoc:
paths: classpath:META-INF/swagger/views/redoc
mapping: /redoc/**
rapidoc:
paths: classpath:META-INF/swagger/views/rapidoc
mapping: /rapidoc/**
swagger-ui:
paths: classpath:META-INF/swagger/views/swagger-ui
mapping: /swagger-ui/**
就像文档说的,我也注释了Application.java,如下图-
package com.api.backend;
import io.micronaut.runtime.Micronaut;
import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.info.Contact;
import io.swagger.v3.oas.annotations.info.Info;
@OpenAPIDefinition(
info = @Info(
title = "API Backend",
version = "0.0",
description = "API backend"
)
)
public class Application {
public static void main(String[] args) {
Micronaut.run(Application.class);
}
}
完成这一切后,当我尝试打开 http://localhost:9090/swagger/api-backend-0.0.yaml 时,它会打开生成的开放 API 规范 yaml。但是,如果我尝试打开 http://localhost:9090/swagger-ui/,我会得到一个 404。
谁能帮我找出问题或提出替代方案?
【问题讨论】:
-
我想知道这个问题是否以某种方式解决了?我有同样的问题。我看到生成了 yaml 文件和 index.html 文件。但是在尝试访问 swagger-ui 时看到 401 错误
-
我的问题没有解决,但是,401表示凭据问题。尝试将 swagger URL 模式列入白名单。
-
感谢@Abhishek 的更新。由于该服务启用了安全性,我才知道这个问题。这是我问的另一个问题:stackoverflow.com/questions/62286864/…。如果您对这个问题有任何想法,请回答
-
你最终解决了这个问题吗?
标签: java swagger swagger-ui micronaut micronaut-openapi