Class OpenAPIGenerator

java.lang.Object
io.jooby.openapi.OpenAPIGenerator

public class OpenAPIGenerator extends Object
Generate an OpenAPI model from a Jooby application.

Optionally exports an OpenAPI model to a json or yaml file.

Usage: https://jooby.io/modules/openapi

Author:
edgar
  • Constructor Details

    • OpenAPIGenerator

      public OpenAPIGenerator(String metaInf)
      Test Only.
      Parameters:
      metaInf - Location of meta-inf directory.
    • OpenAPIGenerator

      public OpenAPIGenerator()
      Creates a new instance.
  • Method Details

    • export

      @NonNull public Path export(@NonNull io.swagger.v3.oas.models.OpenAPI openAPI, @NonNull OpenAPIGenerator.Format format) throws IOException
      Export an OpenAPI model to the given format.
      Parameters:
      openAPI - Model.
      format - Format.
      Returns:
      Output file.
      Throws:
      IOException
    • generate

      @NonNull public io.swagger.v3.oas.models.OpenAPI generate(@NonNull String classname)
      Generate an OpenAPI model from Jooby class. This method parses class byte code and generates an open api model from it. Compilation must be done with debug information and parameters name available.

      Optionally, the conf/openapi.yaml is used as template and get merged into the final model.

      Parameters:
      classname - Application class name.
      Returns:
      Model.
    • toYaml

      @NonNull public String toYaml(@NonNull io.swagger.v3.oas.models.OpenAPI openAPI)
      Generates a YAML version of the given model.
      Parameters:
      openAPI - Model.
      Returns:
      YAML content.
    • toJson

      @NonNull public String toJson(@NonNull io.swagger.v3.oas.models.OpenAPI openAPI)
      Generates a JSON version of the given model.
      Parameters:
      openAPI - Model.
      Returns:
      JSON content.
    • setClassLoader

      public void setClassLoader(@NonNull ClassLoader classLoader)
      Use a custom classloader for resolving class files.
      Parameters:
      classLoader - Class loader.
    • setDebug

      public void setDebug(Set<DebugOption> debug)
      Set debug options.
      Parameters:
      debug - Debug options.
    • getTemplateName

      public String getTemplateName()
      OpenAPI template file name, defaults is: openapi.yaml.
      Returns:
      OpenAPI template file name, defaults is: openapi.yaml.
    • setTemplateName

      public void setTemplateName(@NonNull String templateName)
      Set openAPI template file name, defaults is: openapi.yaml.
      Parameters:
      templateName - OpenAPI template file name, defaults is: openapi.yaml.
    • setBasedir

      public void setBasedir(@NonNull Path basedir)
      Set base directory used it for loading openAPI template file name. Defaults is user.dir .
      Parameters:
      basedir - Base directory.
    • getBasedir

      public Path getBasedir()
      Base directory used it for loading openAPI template file name.

      Defaults is user.dir.

      Returns:
      Base directory used it for loading openAPI template file name.
    • getOutputDir

      public Path getOutputDir()
      Set output directory used by export(OpenAPI, Format) operation.

      Defaults to getBasedir().

      Returns:
      Get output directory.
    • getIncludes

      @Nullable public String getIncludes()
      Regular expression used to includes/keep route. Example: /api/.*.
      Returns:
      Regular expression used to includes/keep route. Example: /api/.*.
    • setIncludes

      public void setIncludes(@Nullable String includes)
      Set regular expression used to includes/keep route. Example: /api/.*.
      Parameters:
      includes - Regular expression.
    • getExcludes

      @Nullable public String getExcludes()
      Regular expression used to excludes route. Example: /web.
      Returns:
      Regular expression used to excludes route. Example: /web.
    • setExcludes

      public void setExcludes(@Nullable String excludes)
      Set Regular expression used to excludes route. Example: /web.
      Parameters:
      excludes - Regular expression used to excludes route. Example: /web.
    • setOutputDir

      public void setOutputDir(@NonNull Path outputDir)
      Set output directory used by export(OpenAPI, Format).
      Parameters:
      outputDir - Output directory.