Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork535
Library for OpenAPI 3 with spring-boot
License
springdoc/springdoc-openapi
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
IMPORTANT:springdoc-openapi v1.8.0
is the latest Open Source release supportingSpring Boot 2.x and 1.x.
An extended support forspringdoc-openapi v1project is now available for organizations that need support beyond 2023.
For more details, feel free to reachout:sales@springdoc.org
springdoc-openapi
is onOpen Collective. Ifyou ❤️ this project consider becoming asponsor.
This project is sponsored by
- Full documentation
- Introduction
- Getting Started
- Library for springdoc-openapi integration with spring-boot and swagger-ui
- Spring-boot with OpenAPI Demo applications.
- Integration of the library in a Spring Boot 3.x project without the swagger-ui:
- Error Handling for REST using @ControllerAdvice
- Adding API Information and Security documentation
- spring-webflux support with Annotated Controllers
- Acknowledgements
The springdoc-openapi Java library helps automating the generation of API documentationusing Spring Boot projects.springdoc-openapi works by examining an application at runtime to infer API semanticsbased on Spring configurations, class structure and various annotations.
The library automatically generates documentation in JSON/YAML and HTML formatted pages.The generated documentation can be complemented usingswagger-api
annotations.
This library supports:
- OpenAPI 3
- Spring-boot v3 (Java 17 & Jakarta EE 9)
- JSR-303, specifically for @NotNull, @Min, @Max, and @Size.
- Swagger-ui
- OAuth 2
- GraalVM native images
The following video introduces the Library:
Forspring-boot v3 support, make sure youusespringdoc-openapi v2
This is a community-based project, not maintained by the Spring Framework Contributors (Pivotal)
- Automatically deploys swagger-ui to a Spring Boot 3.x application
- Documentation will be available in HTML format, using theofficialswagger-ui jars.
- The Swagger UI page should then be available athttp://server:port/context-path/swagger-ui.html and the OpenAPI description will be available at thefollowing url for json format:http://server:port/context-path/v3/api-docs
server
: The server name or IPport
: The server portcontext-path
: The context path of the application
- Documentation can be available in yaml format as well, on the following path:
/v3/api-docs.yaml
- Add the
springdoc-openapi-ui
library to the list of your project dependencies (Noadditional configuration is needed):
Maven
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>last-release-version</version> </dependency>
Gradle
implementation'org.springdoc:springdoc-openapi-starter-webmvc-ui:latest'
- This step is optional: For custom path of the swagger documentation in HTML format, adda custom springdoc property, in your spring-boot configuration file:
# swagger-ui custom pathspringdoc.swagger-ui.path=/swagger-ui.html
- Documentation will be available at the following url for json format:http://server:port/context-path/v3/api-docs
server
: The server name or IPport
: The server portcontext-path
: The context path of the application
- Documentation will be available in yaml format as well, on the followingpath :
/v3/api-docs.yaml
- Add the library to the list of your project dependencies. (No additional configurationis needed)
Maven
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-api</artifactId> <version>last-release-version</version> </dependency>
Gradle
implementation'org.springdoc:springdoc-openapi-starter-webmvc-ui:latest'
- This step is optional: For custom path of the OpenAPI documentation in Json format, adda custom springdoc property, in your spring-boot configuration file:
# /api-docs endpoint custom pathspringdoc.api-docs.path=/api-docs
- This step is optional: If you want to disable
springdoc-openapi
endpoints, add acustom springdoc property, in yourspring-boot
configuration file:
# disable api-docsspringdoc.api-docs.enabled=false
To generate documentation automatically, make sure all the methods declare the HTTP Coderesponses using the annotation: @ResponseStatus.
The library uses spring-boot application auto-configured packages to scan for thefollowing annotations in spring beans: OpenAPIDefinition and Info.These annotations declare, API Information: Title, version, licence, security, servers,tags, security and externalDocs.For better performance of documentation generation, declare@OpenAPIDefinition
and@SecurityScheme
annotations within a Spring managed bean.
- Documentation can be available in yaml format as well, on the following path :/v3/api-docs.yaml
- Add the library to the list of your project dependencies (No additional configurationis needed)
Maven
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webflux-ui</artifactId> <version>last-release-version</version> </dependency>
Gradle
implementation'org.springdoc:springdoc-openapi-starter-webmvc-ui:latest'
- This step is optional: For custom path of the swagger documentation in HTML format, adda custom springdoc property, in your spring-boot configuration file:
# swagger-ui custom pathspringdoc.swagger-ui.path=/swagger-ui.html
Thespringdoc-openapi
libraries are hosted on maven central repository.The artifacts can be viewed accessed at the following locations:
Releases:
Snapshots:
springdoc-openapi is relevant and updated regularly due to the valuable contributions fromitscontributors.
Thanks you all for your support!
- Spring Team - Thanks for their support by sharing all relevantresources around Spring projects.
- JetBrains - Thanks a lot forsupporting springdoc-openapi project.
About
Library for OpenAPI 3 with spring-boot
Topics
Resources
License
Code of conduct
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.