Class OpenApiExtension

java.lang.Object
dev.relism.flash.ext.openapi.OpenApiExtension
All Implemented Interfaces:
dev.relism.flash.extension.FlashExtension

public class OpenApiExtension extends Object implements dev.relism.flash.extension.FlashExtension
Generates and serves an OpenAPI 3.0 spec, and the documentation page that reads it, under a configurable base path.

Given basePath = "/openapi" (the default), three routes are registered:

  • GET /openapi.json — OpenAPI 3.0 spec as JSON
  • GET /openapi.yaml — the same document as YAML
  • GET /openapi/docs — the Ui, Swagger UI unless another is chosen

If flash-ext-jackson is installed, this extension reuses its ObjectMapper. Otherwise it uses a local default mapper.

Every class-based route is collected at boot, whether or not it is annotated: a path, the body its handler takes and what it returns are already in the code. ApiOperation adds the prose.


 FlashApp.create(8080)
     .install(new JacksonExtension())
     .install(new OpenApiExtension("/openapi", "My API", "2.0.0").ui(Ui.scalar()))
     .start();
 
  • Constructor Details

    • OpenApiExtension

      public OpenApiExtension()
    • OpenApiExtension

      public OpenApiExtension(String basePath)
    • OpenApiExtension

      public OpenApiExtension(String basePath, String title, String version)
    • OpenApiExtension

      public OpenApiExtension(String basePath, String title, String version, String description)
  • Method Details

    • ui

      public OpenApiExtension ui(Ui<?> ui)
      Which documentation page to serve, Ui.swagger() by default; Ui.none() serves none.
    • configure

      public void configure(dev.relism.flash.extension.FlashRegistrar<?> app, dev.relism.flash.extension.FlashContext ctx)
      Specified by:
      configure in interface dev.relism.flash.extension.FlashExtension