diff --git a/CHANGELOG.md b/CHANGELOG.md index e1a55bd..677fa10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ # 0.6.2 * fix path assignation of a swagger specification file in UI plug + * add `disable_validator` option to disable/enable validation of a +swagger schema. # 0.6.1 diff --git a/README.md b/README.md index ac6db2c..2bbacc8 100644 --- a/README.md +++ b/README.md @@ -354,7 +354,7 @@ Add a swagger scope to your router, and forward all requests to SwaggerUI ```elixir scope "/api/swagger" do - forward "/", PhoenixSwagger.Plug.SwaggerUI, otp_app: :myapp, swagger_file: "swagger.json" + forward "/", PhoenixSwagger.Plug.SwaggerUI, otp_app: :myapp, swagger_file: "swagger.json", opts: [disable_validator: true] end ``` diff --git a/lib/phoenix_swagger/plug/swaggerui.ex b/lib/phoenix_swagger/plug/swaggerui.ex index b616ff6..aad2ee9 100644 --- a/lib/phoenix_swagger/plug/swaggerui.ex +++ b/lib/phoenix_swagger/plug/swaggerui.ex @@ -81,6 +81,7 @@ defmodule PhoenixSwagger.Plug.SwaggerUI do } window.swaggerUi = new SwaggerUi({ url: url, + <%= validator_url %> dom_id: "swagger-ui-container", supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'], onComplete: function(swaggerApi, swaggerUi){ @@ -165,8 +166,15 @@ defmodule PhoenixSwagger.Plug.SwaggerUI do @doc """ Plug.init callback """ - def init(otp_app: app, swagger_file: swagger_file) do - body = EEx.eval_string(@template, spec_url: swagger_file) + def init(otp_app: app, swagger_file: swagger_file, opts: opts) do + disable_validator = Keyword.get(opts, :disable_validator, false) + validator_url = cond do + disable_validator == true -> + "validatorUrl: null," + true -> + "" + end + body = EEx.eval_string(@template, spec_url: swagger_file, validator_url: validator_url) swagger_file_path = Path.join(["priv", "static", swagger_file]) [app: app, body: body, spec_url: swagger_file, swagger_file_path: swagger_file_path] end