About

This is an example use of SwaggerUiEngine gem inside a Rails project.

Versions

SwaggerUIEngine Ruby Rails versions
1.1.0 2.4.1 5.1.0

Config

Gemfile

gem 'swagger_ui_engine'

Initializer

# config/initializers/swagger_ui_engine.rb

SwaggerUiEngine.configure do |config|
  config.swagger_url = {
    v1: '/doc/v1/swagger.yaml',
    v2: '/doc/v2/swagger.yaml'
  }

  config.doc_expansion = 'full'
  config.model_rendering = 'model'
  config.validator_enabled = true
  config.admin_username = 'admin'
  config.admin_password = 'password'
end

Routes

# config/routes.rb

Rails.application.routes.draw do
  mount SwaggerUiEngine::Engine, at: '/'
end

Swagger Petstore minimal YAML documentation

# public/doc/swagger.yaml

---
  swagger: "2.0"
  info:
    version: "1.0.0"
    title: "Swagger Petstore"
  ...

Result

Heroku app

swagger-ui-engine-example

HTTP Basic Auth

SwaggerUiEngine Basic Auth

The username and password for basic auth are: admin and password - as defined in the example configuration.

Index page

SwaggerUiEngine Index Page

Single version page

Swagger Web UI Single version