- Add
include_private
and the ability to mark action methods as not documented - #67, thanks Daniel Areiza
- Require Ruby 2.5.0 or greater (drop Ruby 1.9 support) - #69, thanks Stef Schenkelaars
- Add
enum<{CONSTANT}>
support - #70, thanks Stef Schenkelaars
- Add
@additional_properties
tag - Add union
(A|B)
and intersection(A&B)
types - Preserve uris registered as external schemas
- PR #66 -- Add @!model directive, thanks Quentin Wentzler
- PR #58 -- Bugfix: anchored match array or object
- PR #57 -- Properties on model methods
- Allow
@property
tags to exist in comment blocks above model methods in addition to the class comment block.
- PR #56 -- Examples
- Example data can be defined at the response, model, or property level and that data will be included in the swagger or openapi document per the specification.
- PR #55 -- OpenAPI 3 support
- Breaking release! Removed unused and deprecated configuration properties (
reload
,enabled
,swagger_spec_base_path
,api_path
) and tags (@response_path
). - SwaggerYard now supports the OpenAPI 3 format. To generate OpenAPI 3 formatted json with your existing
swagger_yard
andswagger_yard-rails
apps, simply add theopenapi_version
or change theswagger_version
config property to be'3.0.0'
. SwaggerYard.configure do |config| config.openapi_version = '3.0.0' end - Add
@response
tag as preferred tag for controller actions to specify alternate responses (previously called@error_message
). - Internal object model refactor (rename ResourceListing -> Specification, ApiDeclaration -> ApiGroup, Api -> PathItem, introduced Tag, Paths and Response models)
- Moved all internal object model
#to_h
methods to SwaggerYard::Swagger so that we can support multiple formats - Support OpenAPI security schemes (http instead of basic, support schemes from RFC7235)
- PR #54 -- Inherits improvement + Validation fixes
- PR #53 -- Bugfix: Handle both orders of parameter/property tags
- PR #52 -- Bugfix: don't document models without a @model tag
- PR #51 -- model doc improvements
- Populate the model description from the class docstring
- Allow model name to be omitted, using the class name as the model name
- Allow inherits to use an arbitrary type (thus allowing inheriting from external schema)
- PR #48 (thanks Brad Lindsay)
- Sort the tag list in the tags section of the swagger document
- PR #49
- Fixes to make swagger yard output more swagger-validation-friendly
- PR #50
- Enable references to external schema documents. See README for details.
- PR #40 (thanks Nick Sieger and Brad Lindsay)
- Add the
parslet
gem for type parsing inline definitions of arrays, enums, objects, etc. - making it possible to nest object definitions, defining their properties and additional properties at the same time / inline
- updating README with descriptions of the
object
definition and nesting syntax.
- Add the
- Also, bumping Ruby version to 2.3.3
- PR #43 (thanks Ole Michaelis)
- Add support for configuring OAuth security definitions
- PR #38 (thanks OpenGov and Tim Rodriguez)
- Add polymorphism support in models
- Add nested object support (map/dictionary functionality)
- Proper port support in
api_base_path
- Support Arrays and Pathnames in model & controller path configs
- Ensure controller and action attributes are strings
- Annotate operation with
x-controller
andx-action
attributes
- Need to mangle type names for consistency
- Ensure only one parameter object for each declared name
- Mangle model names such that only alphanumeric and '_' are allowed
- Repository moved under
livingsocial
organization.
- Use hashing functionality of YARD registry to avoid re-parsing files that haven't changed, improving performance for larger codebases.
- Deprecate
@resource_path
and remove@status_code
- Add more types and options (nullable, JSON Schema formats, regexes, uuid)
-
Add
config.path_discovery_function
to be able to hook in logic from swagger_yard-rails to compute paths from the router -
Allow
@resource_path
to be omitted in a controller class docstring.@resource
is required in order to indicate that a controller is swaggered. -
Remove
@notes
tag. There is no convenient place for notes to be mapped to a swagger spec other than to be part of the API's description. -
Remove
@parameter_list
tag in favor of newenum<val1,val2>
type. Parameter list usage was cumbersome and not well documented. This also enabled removal of the Parameter classallowable_values
option, which was no longer used. -
Remove implicit, undocumented
format_type
parameter. If you still need a format (orformat_type
) parameter, use the newenum
type. Example:# @path /hello.{format} # @parameter format [enum<json,xml>] Format of the response. One of JSON or XML.
-
Deprecate
config.swagger_spec_base_path
andconfig.api_path
. Not used anywhere.
-
Support for Swagger's Spec v2
Nick Sieger <@nicksieger>
-
Remove support for Spec v1
Tony Pitale <@tpitale>
-
!REMOVE RAILS ENGINE AND UI!
Tony Pitale <@tpitale>
-
Allow deeply nested model objects
Peter Doree
-
Adds support for Model and $ref
-
Add doc update for using Model
-
Fix failure when
app/controllers
hadmodule
s in it -
Add specs
Tony Pitale