Spring Boot 3 springdoc-openapi-ui funktioniert nicht

Lesezeit: 5 Minuten

Nadars Benutzeravatar
Nadar

Ich versuche, swagger-ui (OpenAPI 3.0) zu einer Spring Boot v3-Anwendung hinzuzufügen.

Ich habe die Maven-Abhängigkeit openapi-ui hinzugefügt und sie sollte gemäß der Dokumentation funktionieren.

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-ui</artifactId>
    <version>1.6.11</version>
</dependency>

Aber anscheinend funktioniert es immer noch nicht und localhost:8080/swagger-ui.html gibt einen 404-Fehler zurück.

Was vermisse ich?

Geben Sie hier eine Bildbeschreibung ein

  • Wenn die folgenden Lösungen das Problem nicht lösen, können Sie meine Antwort auf überprüfen So führen Sie Swagger 3 auf Spring Boot 3 aus

    – Murat Yıldız

    18. März um 9:01 Uhr

Benutzeravatar von JCompetence
JKompetenz

Laut Dokumentation:

Für Federstiefel 3 Unterstützung, stellen Sie sicher, dass Sie verwenden springdoc-openapi v2

https://springdoc.org/v2/

Für die Integration zwischen Spring-Boot und Swagger-UI fügen Sie die Bibliothek zur Liste Ihrer Projektabhängigkeiten hinzu (keine zusätzliche Konfiguration erforderlich).

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.0.0</version>
</dependency>

Dadurch wird swagger-ui automatisch für eine Spring-Boot-Anwendung bereitgestellt:

Die Dokumentation wird im HTML-Format unter Verwendung der offiziellen Swagger-UI-JARs verfügbar sein

Die Swagger-UI-Seite ist dann unter verfügbar
http://server:port/context-path/swagger-ui.html und die OpenAPI-Beschreibung ist unter der folgenden URL für das JSON-Format verfügbar:
http://server:port/context-path/v3/api-docs

server: The server name or IP

port: The server port

context-path: The context path of the application

Documentation can be available in yaml format as well, on the following path : /v3/api-docs.yaml

Bitte beachten Sie, dass Module umbenannt wurden:

https://springdoc.org/v2/#migrating-from-springdoc-v1

Geben Sie hier eine Bildbeschreibung ein

  • So seltsam. Gemäß Dokumentation springdoc.org Im Einführungsteil heißt es. Die Bibliothek unterstützt OpenAPI 3, Spring-Boot (v1, v2 und v3), was anscheinend nicht der Wahrheit entspricht. In der Spring Boot 3-Umgebung ändert sich etwas in Spring Factorys und Springdoc-Beans werden überhaupt nicht instanziiert.

    – simar

    21. Februar um 12:19 Uhr

  • Funktioniert bei mir immer noch nicht, selbst mit Spring Boot 3 und den richtigen Abhängigkeiten.

    – Monkey Supersonic

    9. März um 17:11 Uhr

  • Stellen Sie sicher, dass Sie die Abhängigkeit „springdoc-openapi-ui“ durch die Abhängigkeit „springdoc-openapi-starter-webmvc-ui“ ersetzen. Wenn Sie beide verwenden, wird die Anwendung nicht gestartet

    – Hugo Vinhal

    18. März um 23:39 Uhr

Suman Maitys Benutzeravatar
Suman Maity

Ich stimme @JCompetence voll und ganz zu. Bitte beachte, dass
springdoc-openapi-ui jetzt geändert zu springdoc-openapi-starter-webmvc-ui
ab Federstiefel 3.

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.0.2</version>
</dependency>

Bitte versuchen Sie es. Wenn Sie weitere Informationen finden möchten, schauen Sie sich bitte den offiziellen Link an:
https://springdoc.org/v2/#features

Benutzeravatar von Alexandr Guravskiy
Alexandr Guravskiy

Bei mir hat es geholfen, ich habe nur die Abhängigkeit geändert

   implementation group: 'org.springdoc', name: 'springdoc-openapi-ui', version: '1.6.11'

Zu

    implementation group: 'org.springdoc', name: 'springdoc-openapi-starter-webmvc-ui', version: '2.0.0'

oder

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.0.0</version>
</dependency>

Du brauchst Verwenden Sie springdoc-openapi v2

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.0.4</version>
</dependency>

Für Kotlin müssen Sie eine weitere Abhängigkeit hinzufügen

<dependency>
    <groupId>com.fasterxml.jackson.module</groupId>
    <artifactId>jackson-module-kotlin</artifactId>
</dependency>

Fügen Sie dann „@OpenAPIDefinition“ zu Ihrer Hauptklasse hinzu

@SpringBootApplication
@OpenAPIDefinition
class MyApplication {
}

Benutzeravatar von Anchal Todariya
Anchal Todariya

springdoc-openapi-starter-webmvc-ui funktioniert nicht mit spring-boot-starter-webflux
bis du einschließt spring-boot-starter-web. Wenn Sie die Federsicherung einbeziehen, ist sie tot.

  • Das hat alle meine Probleme im Leben gelöst (naja, vielleicht nicht in meinem Leben, aber zumindest in meinem Code)

    – Slifer-Drache

    5. Mai um 17:04

  • Für Webflux verwenden Sie::: springdoc-openapi-starter-webflux-ui

    – Komfort-Chauke

    vor 13 Stunden


Benutzeravatar von DV Singh
DV Singh

Maven-Plugin zum Generieren von (Java-)Code aus OpenApi-Spezifikationen (.yml-Dateien)

Der Generator „Spring“ unterstützt den Namensraum Jakarta

<plugin>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-maven-plugin</artifactId>
    <configuration>
        <configOptions>
            ...
            **<useSpringBoot3>true</useSpringBoot3>**
        </configOptions>
    </configuration>
</plugin>

Der Generator „Java“ (zum Generieren eines Clients) unterstützt den Jakarta-Namespace noch nicht. Verwenden Sie also das Eclipse Transformer-Plugin (Javax-Abhängigkeiten benötigen einen bereitgestellten Bereich!)

 <plugin>
        <groupId>org.eclipse.transformer</groupId>
        <artifactId>transformer-maven-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <rules>
           <jakartaDefaults>true</jakartaDefaults>
         </rules>
       </configuration>
        <executions>
            <execution>
                <id>jakarta-ee</id>
                <goals><goal>jar</goal></goals>
                <phase>package</phase>
                <configuration>
                    <artifact>
                        <groupId>${project.groupId}</groupId>
                        <artifactId>${project.artifactId}</artifactId>
                    </artifact>
                </configuration>
            </execution>
        </executions>
    </plugin>

  • Das hat alle meine Probleme im Leben gelöst (naja, vielleicht nicht in meinem Leben, aber zumindest in meinem Code)

    – Slifer-Drache

    5. Mai um 17:04

  • Für Webflux verwenden Sie::: springdoc-openapi-starter-webflux-ui

    – Komfort-Chauke

    vor 13 Stunden


Jay Yadavs Benutzeravatar
Jay Yadav

Nur ein Add-on, wenn in Ihrer Anwendung die Federsicherheit aktiviert ist!! Dann müssen Sie den Swagger-Endpunkt auf die Whitelist setzen, um die Authentifizierung nicht zu verwenden

@Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception {
        httpSecurity.csrf().disable().authorizeHttpRequests(auth -> {
            auth.requestMatchers("/v3/**", "/swagger-ui/**").permitAll();
            auth.anyRequest().authenticated();
        });

return httpSecurity.build();

1452810cookie-checkSpring Boot 3 springdoc-openapi-ui funktioniert nicht

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy