- Add
include_privateand 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_propertiestag - 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
@propertytags 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_yardandswagger_yard-railsapps, simply add theopenapi_versionor change theswagger_versionconfig property to be'3.0.0'. SwaggerYard.configure do |config| config.openapi_version = '3.0.0' end - Add
@responsetag 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_hmethods 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
parsletgem 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
objectdefinition 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-controllerandx-actionattributes
- 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
livingsocialorganization.
- Use hashing functionality of YARD registry to avoid re-parsing files that haven't changed, improving performance for larger codebases.
- Deprecate
@resource_pathand remove@status_code - Add more types and options (nullable, JSON Schema formats, regexes, uuid)
-
Add
config.path_discovery_functionto be able to hook in logic from swagger_yard-rails to compute paths from the router -
Allow
@resource_pathto be omitted in a controller class docstring.@resourceis required in order to indicate that a controller is swaggered. -
Remove
@notestag. 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_listtag in favor of newenum<val1,val2>type. Parameter list usage was cumbersome and not well documented. This also enabled removal of the Parameter classallowable_valuesoption, which was no longer used. -
Remove implicit, undocumented
format_typeparameter. If you still need a format (orformat_type) parameter, use the newenumtype. Example:# @path /hello.{format} # @parameter format [enum<json,xml>] Format of the response. One of JSON or XML. -
Deprecate
config.swagger_spec_base_pathandconfig.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/controllershadmodules in it -
Add specs
Tony Pitale