Skip to content

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

License

Notifications You must be signed in to change notification settings

elwin013/javalin-openapi

This branch is 53 commits behind javalin/javalin-openapi:main.

Folders and files

NameName
Last commit message
Last commit date
Jan 2, 2024
Dec 18, 2022
Jan 2, 2024
Jan 2, 2024
Jan 2, 2024
Jan 2, 2024
Jan 2, 2024
Jan 2, 2024
Apr 16, 2022
Nov 11, 2022
May 4, 2021
Jan 2, 2024
Dec 20, 2022
May 4, 2021
May 4, 2021
Oct 8, 2022

Repository files navigation

OpenAPI Plugin CI Maven Central Version / Snapshot

Compile-time OpenAPI integration for Javalin 6.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, does not perform any extra operations at runtime
  • Uses @OpenApi to simplify migration from bundled OpenApi implementation
  • Supports Java 11+ (also 16 and any further releases) 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.json resource
openapi-specification Annotations & classes used to describe OpenAPI specification
openapi-test Example Javalin application that uses OpenApi plugin in Gradle & Maven

Javalin plugins

Plugin Description
javalin-openapi-plugin Loads /openapi-plugin/openapi.json resource 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 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, Swagger & ReDoc

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 98.6%
  • Groovy 1.4%