How to use openapi.yaml file to generate swagger-ui? – Swagger

by
Ali Hasan
fastify-swagger openapi-generator spring-boot

Quick Fix: Utilize openapi-generator to convert your openapi.yaml file into swagger-ui. Choose the spring generator with documentationProvider set to springdoc to create a Spring server with swagger-ui.html endpoint, complete with Spring annotations and Java classes.

The Problem:

A user has defined their REST API using an OpenAPI specification file and needs a way to use the OpenAPI YAML file to generate the Swagger UI instead of generating Java classes. The user has tried creating an endpoint that reads the file and returns its content as an HTTP response, but is looking for a more efficient solution.

The Solutions:

Solution 1: Use `openapi-generator`

Use the `openapi-generator` tool to generate a spring server using the `spring-boot` library and set the `documentationProvider` to `springdoc`. This will generate the spring java classes with appropriate springdoc annotations as well as the `swagger-ui.html` endpoint.

Solution 2: Using Springdoc v2

Springdoc v2 dependency can be used in conjunction with Spring Boot to generate a Swagger UI page automatically. After adding the dependency, the Swagger UI will be accessible at http://localhost:8080/swagger-ui/index.html. Additionally, the OpenAPI description will be available at http://localhost:8080/v3/api-docs.

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

Note: This solution assumes you are using Spring Boot 3.0.2.

Q&A

Is there a way to use api.yaml to generate swagger-ui.html instead of java classess?

Use the openapi-generator, which has several different generators which can read in a yaml file and output code in your preferred language.

How can I generate swagger UI page with Springdoc?

Include Springdoc v2 dependency into pom.xml to generate a Swagger UI page based on the component-scanned controllers accessible at http://localhost:8080/swagger-ui/index.html

Video Explanation:

The following video, titled "How to build an OpenAPI Specification using YAML? - YouTube", provides additional insights and in-depth exploration related to the topics discussed in this post.

Play video

Comments13 · OpenAPI 3.0: How to Design and Document APIs with the Latest OpenAPI Specification 3.0 · What is the difference between Swagger and ...