From ae2726fc6bfd82f8b0e46e2cdb01739a9a54f8e9 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Mon, 21 Jun 2021 09:21:41 +0100 Subject: [PATCH] Generate rswag initializers Done via rswag rake tasks and tidied up a bit. --- config/initializers/rswag_api.rb | 15 +++++++++++++++ config/initializers/rswag_ui.rb | 17 +++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 config/initializers/rswag_api.rb create mode 100644 config/initializers/rswag_ui.rb diff --git a/config/initializers/rswag_api.rb b/config/initializers/rswag_api.rb new file mode 100644 index 0000000000..58c23bf233 --- /dev/null +++ b/config/initializers/rswag_api.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +Rswag::Api.configure do |config| + # Specify a root folder where Swagger JSON files are located + # This is used by the Swagger middleware to serve requests for API descriptions + # NOTE: If you're using rswag-specs to generate Swagger, you'll need to ensure + # that it's configured to generate files in the same folder + config.swagger_root = Rails.root.join("swagger") + + # Inject a lamda function to alter the returned Swagger prior to serialization + # The function will have access to the rack env for the current request + # For example, you could leverage this to dynamically assign the "host" property + # + # config.swagger_filter = lambda { |swagger, env| swagger['host'] = env['HTTP_HOST'] } +end diff --git a/config/initializers/rswag_ui.rb b/config/initializers/rswag_ui.rb new file mode 100644 index 0000000000..e5b4bf11f8 --- /dev/null +++ b/config/initializers/rswag_ui.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +Rswag::Ui.configure do |config| + # List the Swagger endpoints that you want to be documented through the + # swagger-ui. The first parameter is the path (absolute or relative to the UI + # host) to the corresponding endpoint and the second is a title that will be + # displayed in the document selector. + # NOTE: If you're using rspec-api to expose Swagger files + # (under swagger_root) as JSON or YAML endpoints, then the list below should + # correspond to the relative paths for those endpoints. + + config.swagger_endpoint '/api-docs/v1/swagger.yaml', 'API V1 Docs' + + # Add Basic Auth in case your API is private + # config.basic_auth_enabled = true + # config.basic_auth_credentials 'username', 'password' +end