Add swagger compliant documentation to your maru API
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
config
lib
test
.formatter.exs
.gitignore
.travis.yml
CHANGELOG.md
LICENSE
README.md
mix.exs

README.md

MaruSwagger

Build status hex.pm Version Hex downloads

Usage

GOTCHA: Please keep swagger DSL out of version!

def deps do
  [ {:maru_swagger, github: "elixir-maru/maru_swagger"} ]
end

defmodule Router do
  version "v1"
  ...
end

defmodule API do
  use Maru.Router
  use MaruSwagger

  plug Plug.Logger

  swagger at:         "/swagger",      # (required) the mount point for the URL
          pretty:     true,            # (optional) should JSON be pretty-printed?
          only:       [:dev],          # (optional) the environments swagger works
          except:     [:prod],         # (optional) the environments swagger NOT works
          force_json: true,            # (optional) force JSON for all params instead of formData

          swagger_inject: [            # (optional) this will be directly injected into the root Swagger JSON
            host: "myapi.com",
            basePath: "/api",
            schemes:  [ "http" ],
            consumes: [ "application/json" ],
            produces: [
              "application/json",
              "application/vnd.api+json"
            ]
          ]

  mount Router
end

and then you can get json response from curl http://127.0.0.1:4000/swagger.

open Swagger Petstore in your borwser and fill in http://127.0.0.1:4000/swagger and enjoy maru_swagger.

Thanks