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()
      Default constructor.
  • Method Details

    • export

      public List<Path> export(io.swagger.v3.oas.models.OpenAPI openAPI, OpenAPIGenerator.Format format, Map<String,Object> options) throws IOException
      Export an OpenAPI model to the given format.
      Parameters:
      openAPI - Model.
      format - Format.
      Returns:
      Output file.
      Throws:
      IOException - If fails to process input.
    • generate

      public io.swagger.v3.oas.models.OpenAPI generate(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

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

      public String toAdoc(io.swagger.v3.oas.models.OpenAPI openAPI, Map<String,Object> options)
      Generates an adoc version of the given model.
      Parameters:
      openAPI - Model.
      Returns:
      YAML content.
    • toJson

      public String toJson(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(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(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(Path basedir)
      Set base directory used it for loading openAPI template file name. Defaults is user.dir .
      Parameters:
      basedir - Base directory.
    • setSources

      public void setSources(List<Path> sources)
      Where to find source code. Required for javadoc parsing.
      Parameters:
      sources - Source code location.
    • 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, Map) operation.

      Defaults to getBasedir().

      Returns:
      Get output directory.
    • getIncludes

      public @Nullable 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

      public @Nullable 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(Path outputDir)
      Set output directory used by export(OpenAPI, Format, Map).
      Parameters:
      outputDir - Output directory.
    • setSpecVersion

      public void setSpecVersion(String version)
      Set the desired spec output. Default is 3.1.
      Parameters:
      version - One of 3.0 or 3.1.
    • setJavadoc

      public void setJavadoc(String javadoc)
      True/On to enabled.
      Parameters:
      javadoc - True/On to enabled.
    • getJavadoc

      public boolean getJavadoc()
      True/On to enabled.
      Returns:
      True/On to enabled.