Sha256: 9d283a692bc9d4fda86b967a1c71035b3808a38033ce61c4d6dc8bf631864788

Contents?: true

Size: 1.82 KB

Versions: 1

Compression:

Stored size: 1.82 KB

Contents

# Westfield Swagger

## Overview

Westfield Swagger is a mountable Rails engine which provides everything needed to create and serve Swagger 2.0 API specifications & documentation.

### Installation
Add it to your Gemfile:
```ruby
gem 'westfield_swagger'
```

Then bundle:

```bash
$ bundle install
```

### Usage

WestfieldSwagger will add a new route at /swagger which provides three things:

1. An API endpoint allowing access to the swagger at '/swagger/<revision>.json'
2. An HTML endpoint at '/swagger/<revision>'
3. An API endpoint allowing access to the swagger at '/swagger/<service>/<revision>.json'
4. An HTML endpoint at '/swagger/<service>/<revision>'

External routing for (1, 2) access the swagger in api.xxx.westfield.io or secure.xxx.westfield.io. This is the swagger rollup of all the services.

External routing to the service endpoint for (3, 4) accesses the swagger for the service where the gem is installed. The JavaScript executes without the service in the path, thus loading as in (2).

Your specification can be fully-formatted in JSON at `lib/swagger/{version}.json` or in YAML with embedded Ruby (ERB) at `lib/swagger/{version}.yml`. This will be converted to JSON on-demand when requested. For (1, 2) in the uat and production environments, it prefixes the swagger path version with the environment, so the filename is, for example, uat_1.json.

Additionally, the swagger files can be split across files and directories and will be reconstructed on the fly.

To generate the required files, run:

```bash
$ rails generate swagger
```

This will add an example specification (`lib/swagger/0.1.yml`), example tests (`spec/requests/swagger_spec.rb`) and will mount the engine in your `routes.rb` file.

### References
* Swagger: http://swagger.io/
* Specs (2.0): https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
westfield_swagger-1.2.6 README.md