Skip to content

Annotation processor for compile-time OpenAPI & JsonSchema, with out-of-the-box support for Javalin 5.x, 6.x & 7.x, Swagger & ReDoc

License

Notifications You must be signed in to change notification settings

javalin/javalin-openapi

Repository files navigation

OpenAPI Plugin CI Maven Central Version / Snapshot

Compile-time OpenAPI integration for Javalin 7.x ecosystem. This is a new plugin that replaces old built-in OpenApi module, the API looks quite the same despite some minor changes.

Preview

How to use

Notes

  • Reflection free
  • Uses @OpenApi to simplify migration from bundled OpenApi implementation
  • Supports Java 17+ and Kotlin (through Kapt)
  • Uses internal WebJar handler that works with /* route out of the box
  • Provides better projection of OpenAPI specification
  • Schema validation through Swagger core module

Other examples

  • Test module - JavalinTest shows how this plugin work in Java codebase using various features
  • Reposilite - real world app using Javalin and OpenApi integration

Repository structure

Universal modules

Module Description
openapi-annotation-processor Compile-time annotation processor, should generate /openapi-plugin/openapi-{default/<version>}.json resources
openapi-specification Annotations & classes used to describe OpenAPI specification
examples Example Javalin application that uses OpenApi plugin in Gradle & Maven

Javalin plugins

Plugin Description
javalin-openapi-plugin Loads /openapi-plugin/openapi-{default/<version>}.json resources and serves main OpenApi endpoint
javalin-swagger-plugin Serves Swagger UI
javalin-redoc-plugin Serves ReDoc UI

Branches

Branch Javalin version OpenApi Version Java Version
main 7.x 7.x JDK17
6.x 6.x 6.x JDK11
5.x 5.x 5.x JDK11
4.x 4.x 1.x JDK8

About

Annotation processor for compile-time OpenAPI & JsonSchema, with out-of-the-box support for Javalin 5.x, 6.x & 7.x, Swagger & ReDoc

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

 

Contributors 16