Skip to content

bf4/api_doc_server

This branch is 43 commits ahead of, 47 commits behind zuzannast/swagger_ui_engine:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

114de66 · Oct 12, 2017
Oct 9, 2017
Oct 9, 2017
Oct 9, 2017
Oct 9, 2017
Oct 11, 2017
Apr 18, 2017
Oct 9, 2017
Jul 10, 2017
Jul 6, 2017
Apr 18, 2017
Oct 9, 2017
Jul 12, 2017
Mar 16, 2017
Oct 9, 2017
Oct 9, 2017
Oct 9, 2017
Oct 9, 2017
Oct 9, 2017

Repository files navigation

ApiDocServer

Include redoc as Rails engine and document your API with simple YAML files. Supports API documentation versioning.

Installation

Add to Gemfile

gem 'api_doc_server'

And then run:

$ bundle

Usage

Mount

Add to your config/routes.rb

mount ApiDocServer::Engine, at: "/api_docs"

You can place this route under admin_constraint or other restricted path, or configure basic HTTP authentication.

Devise auth

authenticate :user, lambda { |u| u.admin? } do
  mount ApiDocServer::Engine, at: "/api_docs"
end

Basic HTTP auth

Set admin username and password in an initializer:

# config/initializers/api_doc_server.rb

ApiDocServer.configure do |config|
  config.authentication_proc = proc
    authenticate_or_request_with_http_basic do |username, password|
      User.find_by(name: username, password: password)
    end
  end
end

Initialize

Versioned API documentations

Set the path of your json/yaml versioned documentations in an initializer:

# config/initializers/api_doc_server.rb

ApiDocServer.configure do |config|
  config.swagger_urls = {
    v1: 'api/v1/swagger.yaml',
    v2: 'api/v2/swagger.yaml',
  }
end

and place your main documentation file under /public/api path.

Single API documentation

# config/initializers/api_doc_server.rb

ApiDocServer.configure do |config|
  config.swagger_urls = { v1: 'api/v1/swagger.yaml' }
end

Configure

Config Name Swagger parameter name Description
config.swagger_url Hash<version_key,url> The url pointing swagger.yaml (Swagger 2.0) as per OpenAPI Spec. This params requires hash value - pass your API doc version name as a key and it's main documentation url as a value.
config.doc_config Hash<config_attribute,value> Any of the configs specified in https://github.com/Rebilly/ReDoc#redoc-tag-attributes, e.g. { 'scroll-y-offset': 50 }
config.authentication_proc = proc a proc that takes the current controller as an argument and halts rendering per custom strategy.

License

This project is available under MIT-LICENSE. ☀️

About

Serve Swagger/OpenAPI docs via Rails engine

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 98.7%
  • Other 1.3%