Skip to content
This repository has been archived by the owner on Oct 12, 2021. It is now read-only.

Latest commit

 

History

History
152 lines (101 loc) · 4.32 KB

UPGRADING.md

File metadata and controls

152 lines (101 loc) · 4.32 KB

Upgrading Grape-swagger

Upgrading to >= 1.1.0

Full class name is used for referencing entity by default (e.g. A::B::C instead of just C). Entity and Entities suffixes and prefixes are omitted (e.g. if entity name is Entities::SomeScope::MyFavourite::Entity only SomeScope::MyFavourite will be used).

Upgrading to >= 0.26.1

The format can now be specified, to achieve it for definition properties one have to use grape-swagger-entity >= 0.1.6.

Usage of option markdown won't no longer be supported, cause OAPI accepts GFM and plain text. (see: description of Info)

Upgrading to >= 0.25.2

Avoids ambiguous documentation of array parameters, by enforcing correct usage of both possibilities:

  1. Array of primitive types
params do
  requires :foo, type: Array[String]
end
  1. Array of objects
params do
  requires :put_params, type: Array do
    requires :op, type: String
    requires :path, type: String
    requires :value, type: String
  end
end

Upgrading to >= 0.25.0

The global tag set now only includes tags for documented routes. This behaviour has impact in particular for calling the documtation of a specific route.

Upgrading to >= 0.21.0

With grape >= 0.21.0, grape-entity support moved to separate gem grape-swagger-entity, if you use grape entity, update your Gemfile:

gem 'grape-swagger'
gem 'grape-swagger-entity'

add_swagger_documentation has changed from

  add_swagger_documentation \
    api_version: '0.0.1'

to

  add_swagger_documentation \
    doc_version: '0.0.1'

The API version self, would be set by grape, see -> spec for #403.

Upgrading to >= 0.10.2

With grape >= 0.12.0, support for notes is replaced by passing a block detail option specified. For future compatibility, update your code:

desc 'Get all kittens!', notes: 'this will expose all the kittens'

to

 desc 'Get all kittens!' do
  detail 'this will expose all the kittens'
end

Be aware of ruby-grape/grape#920, currently grape accepts either an option hash OR a block for desc.

Upgrading to >= 0.9.0

Grape-Swagger-Rails

If you're using grape-swagger-rails, remove the .json extension from GrapeSwaggerRails.options.url.

For example, change

GrapeSwaggerRails.options.url = '/api/v1/swagger_doc.json'

to

GrapeSwaggerRails.options.url = '/api/v1/swagger_doc'

See #187 for more information.

Grape 0.10.0

If your API uses Grape 0.10.0 or newer with a single format :json directive, add hide_format: true to add_swagger_documentation. Otherwise nested routes will render with .json links to your API documentation, which will fail with a 404 Not Found.

Upgrading to >= 0.8.0

Changes in Configuration

The following options have been added, removed or have been changed in the grape-swagger interface:

  • markdown: true/false => markdown: GrapeSwagger::Markdown::KramdownAdapter

Markdown

You can now configure a markdown adapter. This was originally changed because of performance issues with Kramdown and the markdown option no longer takes a boolean argument. Built-in adapters include Kramdown and Redcarpet.

Kramdown

To configure the markdown with Kramdown, add the kramdown gem to your Gemfile:

gem 'kramdown'

Configure grape-swagger as follows:

add_swagger_documentation (
    markdown: GrapeSwagger::Markdown::KramdownAdapter
)

Redcarpet

To configure markdown with Redcarpet, add the redcarpet and the rouge gem to your Gemfile. Note that Redcarpet does not work with JRuby.

gem 'redcarpet'
gem 'rouge'

Configure grape-swagger as follows:

add_swagger_documentation (
    markdown: GrapeSwagger::Markdown::RedcarpetAdapter
)

See #142 and documentation section Markdown in Notes for more information.