LIGHT

  • News
  • Docs
  • Community
  • Reddit
  • GitHub

OpenAPI Display

In the light-rest-4j framework, we have provided two handlers to display OpenAPI Specification for the service API. It only works with OpenAPI 3.0 specifications.

OpenApi display Handler

  1. SpecDisplayHandler - Load specification content directly from the browser.

As the OpenAPI 3.0 specification can be named as openapi.yaml, openapi.yml or openapi.json, And it can be located anywhere in different deployment environments. We have this handler to load the specification based on the specification.yml configuration. It allows the SpecSwaggerUIHandler to refer to the specification with a static endpoint defined in the handler.yml file as spec.yaml.

  1. SpecSwaggerUIHandler -Display specification with Swagger UI on the browser.

This handler output the SwaggerUI with HTML and javascript to render the Swagger UI based on the specification loaded from the above handler. The site HTML is hard-coded in the handler with reference to the ‘/spec.yaml’ defined in the Paths section below.

Config

A specification file openapi.json or openapi.yaml file should be in the config folder of your API implementation, and it will be loaded to memory with OpenApiHelper during server startup.

The specification display handlers have a config yml file (specification.yml) which define the specification name and content-type:

---
# Specification type and file name definition

fileName: config/openapi.yaml
contentType: text/yaml

Suppose the service API has a different name and content type for the specification. In that case, users can customize the config file (specification.yml) to define the service’s specification file name and content type.

Path for Specification display

With the light-codegen of the light-4j generator, the generated handler.yml will include the handlers and paths for the specification display.

Handlers:

  # Framework endpoint handlers

  - com.networknt.specification.SpecDisplayHandler@spec
  - com.networknt.specification.SpecSwaggerUIHandler@swaggerui

Paths:

  - path: '/spec.yaml'
    method: 'get'
    exec:
      - spec

  - path: '/specui.html'
    method: 'get'
    exec:
      - swaggerui

The above paths are part of the Swagger UI rendering, and you can enable security or other cross-cutting concerns if you want. These handlers will be generated for all the light-rest-4j projects if you are using the light-codegen. They can also be added to the light-proxy and light-router to serve the Swagger UI for the services behind them.

  • About Light
    • Overview
    • Testimonials
    • What is Light
    • Features
    • Principles
    • Benefits
    • Roadmap
    • Community
    • Articles
    • Videos
    • License
    • Why Light Platform
  • Getting Started
    • Get Started Overview
    • Environment
    • Light Codegen Tool
    • Light Rest 4j
    • Light Tram 4j
    • Light Graphql 4j
    • Light Hybrid 4j
    • Light Eventuate 4j
    • Light Oauth2
    • Light Portal Service
    • Light Proxy Server
    • Light Router Server
    • Light Config Server
    • Light Saga 4j
    • Light Session 4j
    • Webserver
    • Websocket
    • Spring Boot Servlet
  • Architecture
    • Architecture Overview
    • API Category
    • API Gateway
    • Architecture Patterns
    • CQRS
    • Eco System
    • Event Sourcing
    • Fail Fast vs Fail Slow
    • Integration Patterns
    • JavaEE declining
    • Key Distribution
    • Microservices Architecture
    • Microservices Monitoring
    • Microservices Security
    • Microservices Traceability
    • Modular Monolith
    • Platform Ecosystem
    • Plugin Architecture
    • Scalability and Performance
    • Serverless
    • Service Collaboration
    • Service Mesh
    • SOA
    • Spring is bloated
    • Stages of API Adoption
    • Transaction Management
    • Microservices Cross-cutting Concerns Options
    • Service Mesh Plus
    • Service Discovery
  • Design
    • Design Overview
    • Design First vs Code First
    • Desgin Pattern
    • Service Evolution
    • Consumer Contract and Consumer Driven Contract
    • Handling Partial Failure
    • Idempotency
    • Server Life Cycle
    • Environment Segregation
    • Database
    • Decomposition Patterns
    • Http2
    • Test Driven
    • Multi-Tenancy
    • Why check token expiration
    • WebServices to Microservices
  • Cross-Cutting Concerns
    • Concerns Overview
  • API Styles
    • Light-4j for absolute performance
    • Style Overview
    • Distributed session on IMDG
    • Hybrid Serverless Modularized Monolithic
    • Kafka - Event Sourcing and CQRS
    • REST - Representational state transfer
    • Web Server with Light
    • Websocket with Light
    • Spring Boot Integration
    • Single Page Application
    • GraphQL - A query language for your API
    • Light IBM MQ
    • Light AWS Lambda
    • Chaos Monkey
  • Infrastructure Services
    • Service Overview
    • Light Proxy
    • Light Mesh
    • Light Router
    • Light Portal
    • Messaging Infrastructure
    • Centralized Logging
    • COVID-19
    • Light OAuth2
    • Metrics and Alerts
    • Config Server
    • Tokenization
    • Light Controller
  • Tool Chain
    • Tool Chain Overview
  • Utility Library
  • Service Consumer
    • Service Consumer
  • Development
    • Development Overview
  • Deployment
    • Deployment Overview
    • Frontend Backend
    • Linux Service
    • Windows Service
    • Install Eventuate on Windows
    • Secure API
    • Client vs light-router
    • Memory Limit
    • Deploy to Kubernetes
  • Benchmark
    • Benchmark Overview
  • Tutorial
    • Tutorial Overview
  • Troubleshooting
    • Troubleshoot
  • FAQ
    • FAQ Overview
  • Milestones
  • Contribute
    • Contribute to Light
    • Development
    • Documentation
    • Example
    • Tutorial
“OpenAPI Display” was last updated: May 6, 2021: update (7c681ab)
Improve this page
  • News
  • Docs
  • Community
  • Reddit
  • GitHub
  • About Light
  • Getting Started
  • Architecture
  • Design
  • Cross-Cutting Concerns
  • API Styles
  • Infrastructure Services
  • Tool Chain
  • Utility Library
  • Service Consumer
  • Development
  • Deployment
  • Benchmark
  • Tutorial
  • Troubleshooting
  • FAQ
  • Milestones
  • Contribute