Открытие пользовательского интерфейса Swagger дает 404 с Micronaut - PullRequest
1 голос
/ 09 мая 2020

Следуя документации здесь - 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/**

Как сказано в do c, я также помечен 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 spe c yaml. Однако, если я попытаюсь открыть http://localhost:9090/swagger-ui/, я получу 404.

Может ли кто-нибудь помочь мне разобраться в проблеме или предложить альтернативу?

1 Ответ

0 голосов
/ 11 мая 2020

Все шаги кажутся мне правильными.

Не могли бы вы проверить, что после сборки вашего проекта это index. html файл создается в META-INF / swagger / views / swagger-ui в ваш артефакт.

С точки зрения maven, мы видим это в целевой папке после запуска mvn compile как: target / classes / META_INF / swagger / views / swagger-ui

...