/maru_swagger

Add swagger compliant documentation to your maru API

Primary LanguageElixirBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

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