📘 OpenAPI/Swagger-generated API Reference Documentation
Go to file
2016-09-27 09:03:04 +03:00
build Update webpack to latest beta 2016-09-27 09:03:04 +03:00
demo Just a little typo 2016-09-07 14:41:10 -07:00
docs Add x-nullable to the docs 2016-08-31 22:45:34 +03:00
lib Fix broken tabs styling for response samples 2016-09-13 01:34:24 +03:00
manual-types Smaller bundle size by removing esprima dep from bundle 2016-09-02 23:24:51 +03:00
tests makes basePath optional 2016-09-06 10:52:31 +02:00
.codeclimate.yml fix codeclimate config 2015-12-26 19:47:35 +02:00
.eslintignore Updated eslint 2015-12-12 22:10:59 +02:00
.gitignore Move to webpack + AoT compilation 2016-08-28 21:46:10 +03:00
.npmignore prepare for npm publish 2016-01-12 23:36:23 +02:00
.travis.yml Revert "Not run extra prod build on simple CI run" - npm runs prebublish on install :( 2016-08-31 23:56:26 +03:00
bower.json Add additional keywords 2016-02-24 18:25:49 +02:00
CHANGELOG.md Update CHANGELOG 2016-09-01 11:54:25 +03:00
karma.conf.js Ignore changes (watcher) during tests 2016-08-29 12:05:44 +03:00
LICENSE Update LICENSE 2015-10-30 07:56:43 -05:00
package.json Update webpack to latest beta 2016-09-27 09:03:04 +03:00
protractor.conf.js fix IE detection in protractor 2016-08-29 01:05:34 +03:00
README.md Update local dev steps (fixes #114) 2016-09-20 18:28:42 -04:00
tsconfig.json Fixed indentation 2016-09-08 12:19:33 +02:00
tslint.json Fix lint erorrs, fix typescript version 2016-06-15 21:48:04 +03:00

ReDoc

OpenAPI/Swagger-generated API Reference Documentation

Build Status Coverage Status Tested on APIs.guru Code Climate dependencies Status devDependencies Status Stories in Ready

npm Bower License

Browser Compatibility

ReDoc demo

Live demo

Features

  • Extremely easy deployment
  • Its free and open-source project under MIT license
  • The widest OpenAPI features support (yes, it supports even discriminator)
  • Neat documentation for nested objects
  • Code samples support (via vendor extension)
  • Responsive three-panel design with menu/scrolling synchronization
  • Integrate API introduction into side menu - ReDoc takes advantage of markdown headings from OpenAPI description field. It pulls them into side menu and also supports deep linking.

Roadmap

  • docs pre-rendering (performance and SEO)
  • ability to simple customization
  • built-in API Console

Releases

We host latest and all the previous ReDoc releases on GitHub Pages-based CDN:

Deployment

TL;DR

<!DOCTYPE html>
<html>
  <head>
    <title>ReDoc</title>
    <!-- needed for adaptive design -->
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!--
    ReDoc doesn't change outer page styles
    -->
    <style>
      body {
        margin: 0;
        padding: 0;
      }
    </style>
  </head>
  <body>
    <redoc spec-url='http://petstore.swagger.io/v2/swagger.json'></redoc>
    <script src="https://rebilly.github.io/ReDoc/releases/latest/redoc.min.js"> </script>
  </body>
</html>

That's all folks!

1. Install ReDoc (skip this step for CDN)

Install using bower:

bower install redoc

or using npm:

npm install redoc --save

2. Reference redoc script in HTML

For CDN:

<script src="https://rebilly.github.io/ReDoc/releases/latest/redoc.min.js"> </script>

For bower:

<script src="bower_components/redoc/dist/redoc.min.js"> </script>

For npm:

<script src="node_modules/redoc/dist/redoc.min.js"> </script>

3. Add <redoc> element to your page

<redoc spec-url="url/to/your/spec"></redoc>

4. Enjoy 😄

Configuration

Swagger vendor extensions

ReDoc makes use of the following vendor extensions:

  • x-logo - is used to specify API logo
  • x-traitTag - useful for handling out common things like Pagination, Rate-Limits, etc
  • x-code-samples - specify operation code samples
  • x-nullable - mark schema param as a nullable

<redoc> tag attributes

  • spec-url - relative or absolute url to your spec file;
  • scroll-y-offset - If set, specifies a vertical scroll-offset. This is often useful when there are fixed positioned elements at the top of the page, such as navbars, headers etc; scroll-y-offset can be specified in various ways:
    • number: A fixed number of pixels to be used as offset;
    • selector: selector of the element to be used for specifying the offset. The distance from the top of the page to the element's bottom will be used as offset;
    • function: A getter function. Must return a number representing the offset (in pixels);
  • suppress-warnings - if set, warnings are not rendered at the top of documentation (they still are logged to the console).

Advanced usage

Instead of adding spec-url attribute to the <redoc> element you can initialize ReDoc via globally exposed Redoc object:

Redoc.init(specUrl, options)

options is javascript object with camel-cased version of <redoc> tag attribute names as the keys, e.g.:

Redoc.init('http://petstore.swagger.io/v2/swagger.json', {
  scrollYOffset: 50
})

Development

Running local dev-server

  • Clone repository git clone https://github.com/Rebilly/ReDoc.git
  • Go to the project folder cd ReDoc
  • Install dependencies npm install
  • (Temporary step, will be obsolete after fixing #97) Compile CSS
npm run build:sass
  • (optional) Replace demo/swagger.json with your own schema
  • Start the server npm start
  • Open http://localhost:9000