Skip to content

Latest commit

 

History

History
1360 lines (890 loc) · 39.4 KB

CHANGELOG.rst

File metadata and controls

1360 lines (890 loc) · 39.4 KB

Changelog

6.6.1 (2024-04-22)

Bug fixes:

  • MarshmallowPlugin: Fix handling of Nested fields with allow_none=True (833). Thanks jc-harrison for reporting and kolditz-senec for the PR.

6.6.0 (2024-03-15)

Features:

  • Add IP fields to DEFAULT_FIELD_MAPPING (:pr:`892) to document format. Thanks cjproud for the PR.

6.5.0 (2024-02-26)

Bug fixes:

  • Include null as a value when using validate.OneOf or fields.Enum when allow_none is True for a field (812). Thanks pmdarrow for reporting and kolditz-senec for the PR.

Other changes:

  • Deprecate the __version__ attribute. Use feature detection, or importlib.metadata.version("apispec"), instead (878).

6.4.0 (2024-01-09)

Features:

  • MarshmallowPlugin: Support different datetime formats for marshmallow.fields.DateTime fields (814). Thanks TheBigRoomXXL for the suggestion and PR.
  • MarshmallowPlugin: Handle resolving names of schemas with spaces in the name (856). Thanks duchuyvp for the PR.
  • Various typing improvements (873).

Other changes:

  • Support Python 3.12.
  • Drop support for Python 3.7, which is EOL.
  • Remove [validation] from extras, as it is no longer used.

6.3.1 (2023-12-21)

Bug fixes:

- Fix conversion of deprecated flag on parameters (850).

Thanks tsokalski for the PR.

6.3.0 (2023-03-10)

Features:

  • Resolve schema references in parameters content (830). Thanks codectl for the PR.

6.2.0 (2023-03-06)

Features:

  • Resolve references in callbacks (827). Thanks codectl for the PR.

6.1.0 (2023-03-03)

Bug fixes:

  • Serialize min/max values in field2range (825).

Other changes:

  • Test against Python 3.11 (809).

6.0.2 (2022-11-10)

Bug fixes:

  • Allow passing openapi_version as string in marshmallow OpenAPIConverter (810). Thanks paradoxxxzero for the PR.

6.0.1 (2022-11-05)

Bug fixes:

  • Document fields.Enum as list of values, not string (806). Thanks tadams42 for reporting.

6.0.0 (2022-10-15)

Features:

  • Support fields.Enum (802).
  • Backwards-incompatible: Change MarshmallowPlugin.map_to_openapi_type from a decorator to a classic function, taking a field as first argument (804).
  • Backwards-incompatible: Remove validate_spec from public API. Users may call their validator of choice directly (803).

Other changes:

  • Drop support for marshmallow < 3.18.0 (802).

6.0.0b1 (2022-10-04)

Features:

  • Add OpenAPIConverter.add_parameter_attribute_function to allow documentation of custom list fields such as webargs DelimitedList (778).
  • Backwards-incompatible: Remove OpenAPIVersion and use packaging.Version instead (801).

5.2.2 (2022-05-13)

Bug fixes:

  • Fix schema property ordering regression in ApiSpec.to_yaml() (768). Thanks vorticity for the PR.

5.2.1 (2022-05-01)

Bug fixes:

  • Fix type hints for APISpec.path and BasePlugin methods (765).

5.2.0 (2022-04-29)

Features:

  • Use raise from whenever possible (763).

Refactoring:

  • Use a tuple rather than a namedtuple for "schema key" (725).

Other changes:

  • Add type hints (747). Thanks kasium for the PR.
  • Test against Python 3.10 (724).
  • Drop support for Python 3.6 (727).
  • Switch to Github Actions for CI (751).

5.1.1 (2021-09-27)

Bug fixes:

  • Fix field ordering in "ordered" schema classes documentation (714).

Other changes:

  • Don't build universal wheels. We don't support Python 2 anymore. (705)
  • Make the build reproducible (669).

5.1.0 (2021-08-10)

Features:

  • Add lazy option to component registration methods. This allows to add components to the spec only if they are actually referenced. (702)
  • Add BasePlugin.header_helper and MarshmallowPlugin.header_helper (703).

Bug fixes:

  • Ensure plugin helpers get component copies. Avoids issues if a plugin helper mutates its inputs. (704)

5.0.0 (2021-07-29)

Features:

  • Rename doc_default to default. Since schema metadata is namespaced in a single metadata parameter, there is no name collision with default parameter anymore (687).
  • Don't build schema component reference in OpenAPIConverter.resolve_nested_schema. This is done later in Components (700).
  • MarshmallowPlugin: resolve schemas in allOf, oneOf, anyOf and not (701). Thanks stefanv for the initial work on this.

Other changes:

  • Refactor Components methods to make them consistent. Use component_id rather than name, remove **kwargs when unused. (696)

5.0.0b1 (2021-07-22)

Features:

  • Resolve all component references in paths and components. All references must be passed as strings, not as a {$ref: '...'}} dict (671).

Other changes:

  • Don't use deprecated missing marshmallow field attribute but use load_default instead (692).
  • Refactor references resolution. get_ref method is moved from APISpec to Components (655). APISpec.clean_parameters and APISpec.clean_parameters are now private methods (695).
  • Drop support for marshmallow < 3.13.0 (692).

4.7.1 (2021-07-06)

Bug fixes:

  • Correct spelling of 'null': remove extra quotes (689). Thanks mjpieters for the PR.

4.7.0 (2021-06-28)

Features:

  • Document deprecated property from field metadata (686). Thanks greyli for the PR.
  • Document writeOnly and nullable properties from field metadata (684). Thanks greyli for the PR.

4.6.0 (2021-06-14)

Features:

  • Support Pluck field (677). Thanks mjpieters for the PR.
  • Support TimeDelta field (678).

4.5.0 (2021-06-04)

Features:

  • Support OpenAPI 3.1.0 (579).

Bug fixes:

  • Fix get_fields to avoid crashing when a field is named fields (673). Thanks Reskov for reporting.

Other changes:

  • Don't pass field metadata as keyword arguments in the tests. This is deprecated since marshmallow 3.10. apispec is still compatible with marshmallow >=3,<3.10 but tests now require marshmallow >=3.10. (675)

4.4.2 (2021-05-24)

Bug fixes:

  • Respect partial marshmallow schema parameter: don't document the field as required. (627). Thanks Anti-Distinctlyminty for the PR.

4.4.1 (2021-05-07)

Bug fixes:

  • Don't set additionalProperties if Meta.unknown is EXCLUDE (659). Thanks kupuguy for the PR.

4.4.0 (2021-03-31)

Features:

  • Populate additionalProperties from Meta.unknown (635). Thanks timsilvers for the PR.
  • Allow to_yaml to pass kwargs to yaml.dump (648).
  • Resolve header references in responses (650).
  • Resolve example references in parameters, request bodies and responses (651).

4.3.0 (2021-02-10)

Features:

  • Add apispec.core.Components.header to register header components (637).

4.2.0 (2021-02-06)

Features:

  • Make components public attributes of Components class (634).

4.1.0 (2021-01-26)

Features:

  • Resolve schemas in callbacks (544). Thanks kortsi for the PR.

Bug fixes:

  • Fix docstrings documenting kwargs type as dict (534).
  • Use x-minimum and x-maximum extensions to document ranges that are not of number type (e.g. datetime) (614).

Other changes:

  • Test against Python 3.9.

4.0.0 (2020-09-30)

Features:

  • Backwards-incompatible: Automatically generate references for schemas passed as strings in responses and request bodies. When using MarshmallowPlugin, if a schema is passed as string, the marshmallow registry is looked up for this schema name and if none is found, the name is assumed to be a reference to a manually created schema and a reference is generated. No exception is raised anymore if the schema name can't be found in the registry. (554)

4.0.0b1 (2020-09-06)

Features:

  • Backwards-incompatible: Ignore location field metadata. This attribute was used in webargs but it has now been dropped. A Schema can now only have a single location. This simplifies the logic in OpenAPIConverter methods, where default_in argument now becomes location. (526)
  • Backwards-incompatible: Don't document int format as "int32" and float format as "float", as those are platform-dependent (595).

Refactoring:

  • OpenAPIConverter.field2parameters and OpenAPIConverter.property2parameter are removed. OpenAPIConverter.field2parameter becomes private. (581)

Other changes:

  • Drop support for marshmallow 2. Marshmallow 3.x is required. (583)
  • Drop support for Python 3.5. Python 3.6+ is required. (582)

3.3.2 (2020-08-29)

Bug fixes:

  • Fix crash when field metadata contains non-string keys (596). Thanks sanzoghenzo for the fix.

3.3.1 (2020-06-06)

Bug fixes:

  • Fix MarshmallowPlugin crash when resolve_schema_dict is passed a schema as string and schema_name_resolver returns None (566). Thanks black3r for reporting and thanks Bangertm for the PR.

3.3.0 (2020-02-14)

Features:

  • Instantiate Components before calling plugins' init_spec (539). Thanks Colin-b for the PR.

3.2.0 (2019-12-22)

Features:

  • Add match_info to __location_map__ (517). Thanks fedorfo for the PR.

3.1.1 (2019-12-17)

Bug fixes:

  • Don't emit a warning when passing "default" as response status code in OASv2 (521).

3.1.0 (2019-11-04)

Features:

  • Add apispec.core.Components.example for adding Example Objects (515). Thanks codeasashu for the PR.

Support:

  • Test against Python 3.8 (510).

3.0.0 (2019-09-17)

Features:

  • Add support for generating user-defined OpenAPI properties for custom field classes via an add_attribute_function method (478 and 498).
  • [apispec.ext.marshmallow]: Backwards-incompatible fields.Raw and fields.Field are now represented by OpenAPI Any Type (495).
  • [apispec.ext.marshmallow]: Backwards-incompatible: The schema_name_resolver function now receives a Schema class, a Schema instance or a string that resolves to a Schema class. This allows a custom resolver to generate different names depending on schema modifiers used in a Schema instance (476).

Bug fixes:

  • [apispec.ext.marshmallow]: With marshmallow 3, the default value of a field in the documentation is the serialized value of the missing attribute, not missing itself (490).

Refactoring:

  • clean_parameters and clean_operations are now APISpec methods (489).
  • [apispec.ext.marshmallow]: Schema resolver methods are extracted from MarshmallowPlugin into a SchemaResolver class member (496).
  • [apispec.ext.marshmallow]: OpenAPIConverter is now a class member of MarshmallowPlugin (493).
  • [apispec.ext.marshmallow]: Field to properties conversion logic is extracted from OpenAPIConverter into FieldConverterMixin (478).

Other changes:

  • Drop support for Python 2 (491). Thanks hugovk for the PR.
  • Drop support for marshmallow pre-releases. Only stable 2.x and 3.x versions are supported (485).

2.0.2 (2019-07-04)

Bug fixes:

  • Fix compatibility with marshmallow 3.0.0rc8 (469).

Other changes:

  • Switch to Azure Pipelines (468).

2.0.1 (2019-06-26)

Bug fixes:

  • Don't mutate operations and parameters in APISpec.path to avoid issues when calling it twice with the same operations or parameters (464).

2.0.0 (2019-06-18)

Features:

  • Add support for path level parameters (453). Thanks karec for the PR.
  • Backwards-incompatible: A apispec.exceptions.DuplicateParameterError is raised when two parameters with same name and location are passed to a path or an operation (455).
  • Backwards-incompatible: A apispec.exceptions.InvalidParameterError is raised when a parameter is missing required name and in attributes after helpers have been executed (455).

Other changes:

  • Backwards-incompatible: All plugin helpers must accept extra **kwargs (453).
  • Backwards-incompatible: Components must be referenced by ID, not full path (463).

1.3.3 (2019-05-05)

Bug fixes:

  • marshmallow 3.0.0rc6 compatibility (445).

1.3.2 (2019-05-02)

Bug fixes:

  • Fix handling of OpenAPI v3 components content without schema in MarshmallowPlugin (443).

1.3.1 (2019-04-29)

Bug fixes:

  • Fix handling of http.HTTPStatus objects (426). Thanks DStape.
  • [apispec.ext.marshmallow]: Ensure make_schema_key returns a unique key on unhashable iterables (416, 439). Thanks zedrdave.

1.3.0 (2019-04-24)

Features:

  • [apispec.ext.marshmallow]: Use class hierarchy to infer type and format properties (433, 250). Thanks andrjohn for the PR.

1.2.1 (2019-04-18)

Bug fixes:

  • Fix error in MarshmallowPlugin when passing exclude and dump_only as class Meta attributes mixing list and tuple (431). Thanks blagasz for the PR.

1.2.0 (2019-04-08)

Features:

  • Strip empty sections (components, tags) from generated documentation (421 and 425).

1.1.2 (2019-04-07)

Bug fixes:

  • Fix behavior when using "2xx", 3xx", etc. for response keys (422). Thanks zachmullen for reporting.

1.1.1 (2019-04-02)

Bug fixes:

  • Fix passing references for parameters/responses when using MarshmallowPlugin (414).

1.1.0 (2019-03-17)

Features:

  • Resolve Schema classes in response headers (409).

1.0.0 (2019-02-08)

Features:

  • Expanded support for OpenAPI Specification version 3 (165).
  • Add summary and description parameters to APISpec.path (227). Thanks timakro for the suggestion.
  • Add apispec.core.Components.security_scheme for adding Security Scheme Objects (245).
  • [apispec.ext.marshmallow]: Add support for outputting field patterns from Regexp validators (364). Thanks DStape for the PR.

Bug fixes:

  • [apispec.ext.marshmallow]: Fix automatic documentation of schemas when using Nested(MySchema, many==True) (383). Thanks whoiswes for reporting.

Other changes:

  • Backwards-incompatible: Components properties are now passed as dictionaries rather than keyword arguments (381).
# <1.0.0
spec.components.schema("Pet", properties={"name": {"type": "string"}})
spec.components.parameter("PetId", "path", format="int64", type="integer")
spec.components.response("NotFound", description="Pet not found")

# >=1.0.0
spec.components.schema("Pet", {"properties": {"name": {"type": "string"}}})
spec.components.parameter("PetId", "path", {"format": "int64", "type": "integer"})
spec.components.response("NotFound", {"description": "Pet not found"})

Deprecations/Removals:

  • Backwards-incompatible: The ref argument passed to fields is no longer used (354). References for nested Schema are stored automatically.
  • Backwards-incompatible: The extra_fields argument of apispec.core.Components.schema is removed. All properties may be passed in the component argument.
# <1.0.0
spec.definition("Pet", schema=PetSchema, extra_fields={"discriminator": "name"})

# >=1.0.0
spec.components.schema("Pet", schema=PetSchema, component={"discriminator": "name"})

1.0.0rc1 (2018-01-29)

Features:

  • Automatically generate references to nested schemas with a computed name, e.g. fields.Nested(PetSchema()) -> #components/schemas/Pet.
  • Automatically generate references for requestBody using the above mechanism.
  • Ability to opt out of the above behavior by passing a schema_name_resolver function that returns None to api.ext.MarshmallowPlugin.
  • References now respect Schema modifiers, including exclude and partial.
  • Backwards-incompatible: A apispec.exceptions.DuplicateComponentNameError is raised when registering two components with the same name (340).

1.0.0b6 (2018-12-16)

Features:

  • Backwards-incompatible: basePath is not removed from paths anymore. Paths passed to APISpec.path should not contain the application base path (345).
  • Add apispec.ext.marshmallow.openapi.OpenAPIConverter.resolve_schema_class (346). Thanks buxx.

1.0.0b5 (2018-11-06)

Features:

  • apispec.core.Components is added. Each APISpec instance has a Components object used to define components such as schemas, parameters or responses. "Components" is the OpenAPI v3 terminology for those reusable top-level objects.
  • apispec.core.Components.parameter and apispec.core.Components.response are added.
  • Backwards-incompatible: apispec.APISpec.add_path and apispec.APISpec.add_tag are renamed to apispec.APISpec.path and apispec.APISpec.tag.
  • Backwards-incompatible: apispec.APISpec.definition is moved to the Components class and renamed to apispec.core.Components.schema.
# apispec<1.0.0b5
spec.add_tag({'name': 'Pet', 'description': 'Operations on pets'})
spec.add_path('/pets/', operations=...)
spec.definition('Pet', properties=...)

# apispec>=1.0.0b5
spec.tag({'name': 'Pet', 'description': 'Operations on pets'})
spec.path('/pets/', operations=...)
spec.components.schema('Pet', properties=...)
  • Plugins can define parameter_helper and response_helper to modify parameter and response components definitions.
  • MarshmallowPlugin resolves schemas in parameters and responses components.
  • Components helpers may return None as a no-op rather than an empty dict (336).

Bug fixes:

  • MarshmallowPlugin.schema_helper does not crash when no schema is passed (336).

Deprecations/Removals:

  • The legacy response_helper feature is removed. The same can be achieved from operation_helper.

1.0.0b4 (2018-10-28)

  • Backwards-incompatible: apispec.ext.flask, apispec.ext.bottle, and apispec.ext.tornado are moved to a separate package, apispec-webframeworks. (302).

If you use these plugins, install apispec-webframeworks and update your imports like so: :

# apispec<1.0.0b4
from apispec.ext.flask import FlaskPlugin

# apispec>=1.0.0b4
from apispec_webframeworks.flask import FlaskPlugin

Thanks ergo for the suggestion and the PR.

1.0.0b3 (2018-10-08)

Features:

  • [apispec.core]: Backwards-incompatible: openapi_version parameter of APISpec class does not default to '2.0' anymore and info parameter is merged with **options kwargs.

Bug fixes:

  • [apispec.ext.marshmallow]: Exclude load_only fields when documenting responses (119). Thanks luisincrespo for reporting.
  • [apispec.ext.marshmallow]: Exclude dump_only fields when documenting request body parameter schema.

1.0.0b2 (2018-09-09)

  • Drop deprecated plugin interface. Only plugin classes are now supported. This includes the removal of APISpec's register_*_helper methods, as well as its schema_name_resolver parameter. Also drop deprecated apispec.utils.validate_swagger. (259)
  • Use yaml.safe_load instead of yaml.load when reading docstrings (278). Thanks lbeaufort for the suggestion and the PR.

1.0.0b1 (2018-07-29)

Features:

  • [apispec.core]: Backwards-incompatible: Remove Path class. Plugins' path_helper methods should now return a path as a string and optionally mutate the operations dictionary (238).
  • [apispec.core]: Backwards-incompatible: YAML support is optional. To install with YAML support, use pip install 'apispec[yaml]'. You will need to do this if you use FlaskPlugin, BottlePlugin, or TornadoPlugin (251).
  • [apispec.ext.marshmallow]: Allow overriding the documentation for a field's default. This is especially useful for documenting callable defaults (196).

0.39.0 (2018-06-28)

Features:

  • [apispec.core]: Backwards-incompatible: Change plugin interface. Plugins are now child classes of apispec.BasePlugin. Built-in plugins are still usable with the deprecated legacy interface. However, the new class interface is mandatory to pass parameters to plugins or to access specific methods that used to be accessed as module level functions (typically in apispec.ext.marshmallow.swagger). Also, schema_name_resolver is now a parameter of apispec.ext.marshmallow.MarshmallowPlugin. It can still be passed to APISpec while using the legacy interface. (207)
  • [apispec.core]: Backwards-incompatible: APISpec.openapi_version is now an apispec.utils.OpenAPIVersion instance.

0.38.0 (2018-06-10)

Features:

  • [apispec.core]: Backwards-incompatible: Rename apispec.utils.validate_swagger to apispec.utils.validate_spec and apispec.exceptions.SwaggerError to apispec.exceptions.OpenAPIError. Using validate_swagger will raise a DeprecationWarning (224).
  • [apispec.core]: apispec.utils.validate_spec no longer relies on the check_api NPM module. prance and openapi-spec-validator are required for validation, and can be installed using pip install 'apispec[validation]' (224).
  • [apispec.core]: Deep update components instead of overwriting components for OpenAPI 3 (222). Thanks Guoli-Lyu.

Bug fixes:

  • [apispec.ext.marshmallow]: Fix description for parameters in OpenAPI 3 (223). Thanks again Guoli-Lyu.

Other changes:

  • Drop official support for Python 3.4. Only Python 2.7 and >=3.5 are supported.

0.37.1 (2018-05-28)

Features:

  • [apispec.ext.marshmallow]: Fix OpenAPI 3 conversion of schemas in parameters (217). Thanks Guoli-Lyu for the PR.

0.37.0 (2018-05-14)

Features:

  • [apispec.ext.marshmallow]: Resolve an array of schema objects in parameters (209). Thanks cvlong for reporting and implementing this.

0.36.0 (2018-05-07)

Features:

  • [apispec.ext.marshmallow]: Document values parameter of Dict field as additionalProperties (201). Thanks UrKr.

0.35.0 (2018-04-10)

Features:

  • [apispec.ext.marshmallow]: Recurse over properties when resolving schemas (186). Thanks lphuberdeau.
  • [apispec.ext.marshmallow]: Support writeOnly and nullable in OpenAPI 3 (fall back to x-nullable for OpenAPI 2) (165). Thanks lafrech.

Bug fixes:

  • [apispec.ext.marshmallow]: Always use field.missing instead of field.default when introspecting fields (32). Thanks lafrech.

Other changes:

  • [apispec.ext.marshmallow]: Refactor some of the internal functions in apispec.ext.marshmallow.swagger for consistent API (199). Thanks lafrech.

0.34.0 (2018-04-04)

Features:

  • [apispec.core]: Maintain order in which methods are added to an endpoint (189). Thanks lafrech.

Other changes:

  • [apispec.core]: Path no longer inherits from dict (190). Thanks lafrech.

0.33.0 (2018-04-01)

Features:

  • [apispec.ext.marshmallow]: Respect data_key argument on fields (in marshmallow 3). Thanks lafrech.

0.32.0 (2018-03-24)

Features:

  • [apispec.ext.bottle]: Allow app to be passed to spec.add_path (188). Thanks dtaniwaki for the PR.

Bug fixes:

  • [apispec.ext.marshmallow]: Fix issue where "body" and "required" were getting overwritten when passing a Schema to a parameter (168, 184). Thanks dlopuch and mathewmarcus for reporting and thanks mathewmarcus for the PR.

0.31.0 (2018-01-30)

  • [apispec.ext.marshmallow]: Use dump_to for name even if load_from does not match it (178). Thanks LeonAgmonNacht for reporting and thanks lafrech for the fix.

0.30.0 (2018-01-12)

Features:

  • [apispec.core]: Add Spec.to_yaml method for serializing to YAML (161). Thanks jd.

0.29.0 (2018-01-04)

Features:

  • [apispec.core and apispec.ext.marshmallow]: Add limited support for OpenAPI v3. Pass openapi_version='3.0.0' to Spec to use it (165). Thanks Bangertm.

0.28.0 (2017-12-09)

Features:

  • [apispec.core and apispec.ext.marshmallow]: Add schema_name_resolver param to APISpec for resolving ref names for marshmallow Schemas. This is useful when a self-referencing schema is nested within another schema (167). Thanks buxx for the PR.

0.27.1 (2017-12-06)

Bug fixes:

  • [apispec.ext.flask]: Don't document view methods that aren't included in app.add_url_rule(..., methods=[...])) (173). Thanks ukaratay.

0.27.0 (2017-10-30)

Features:

  • [apispec.core]: Add register_operation_helper.

Bug fixes:

  • Order of plugins does not matter (136).

Thanks yoichi for these changes.

0.26.0 (2017-10-23)

Features:

  • [apispec.ext.marshmallow]: Generate "enum" property with single entry when the validate.Equal validator is used (155). Thanks Bangertm for the suggestion and PR.

Bug fixes:

  • Allow OPTIONS to be documented (162). Thanks buxx for the PR.
  • Fix regression from 0.25.3 that caused a KeyError (163). Thanks yoichi.

0.25.4 (2017-10-09)

Bug fixes:

  • [apispec.ext.marshmallow]: Fix swagger location mapping for default_in param in fields2parameters (156). Thanks decaz.

0.25.3 (2017-09-27)

Bug fixes:

  • [apispec.ext.marshmallow]: Correctly handle multiple fields with location=json (75). Thanks shaicantor for reporting and thanks yoichi for the patch.

0.25.2 (2017-09-05)

Bug fixes:

  • [apispec.ext.marshmallow]: Avoid AttributeError when passing non-dict items to path objects (151). Thanks yoichi.

0.25.1 (2017-08-23)

Bug fixes:

  • [apispec.ext.marshmallow]: Fix use_instances when many=True is set (148). Thanks theirix.

0.25.0 (2017-08-15)

Features:

  • [apispec.ext.marshmallow]: Add use_instances parameter to fields2paramters (144). Thanks theirix.

Other changes:

  • Don't swallow YAMLError when YAML parsing fails (135). Thanks djanderson for the suggestion and the PR.

0.24.0 (2017-08-15)

Features:

  • [apispec.ext.marshmallow]: Add swagger.map_to_swagger_field decorator to support custom field classes (120). Thanks frol for the suggestion and thanks dradetsky for the PR.

0.23.1 (2017-08-08)

Bug fixes:

  • [apispec.ext.marshmallow]: Fix swagger location mapping for default_in param in property2parameter (142). Thanks decaz.

0.23.0 (2017-08-03)

  • Pass operations constructed by plugins to downstream marshmallow plugin (138). Thanks yoichi.
  • [apispec.ext.marshmallow] Generate parameter specification from marshmallow Schemas (127). Thanks ewalker11 for the suggestion thanks yoichi for the PR.
  • [apispec.ext.flask] Add support for Flask MethodViews (85, 125). Thanks lafrech and boosh for the suggestion. Thanks djanderson and yoichi for the PRs.

0.22.3 (2017-07-16)

  • Release wheel distribution.

0.22.2 (2017-07-12)

Bug fixes:

  • [apispec.ext.marshmallow]: Properly handle callable default values in output spec (131). Thanks NightBlues.

0.22.1 (2017-06-25)

Bug fixes:

  • [apispec.ext.marshmallow]: Include default in output spec when False is the default for a Boolean field (130). Thanks nebularazer.

0.22.0 (2017-05-30)

Features:

  • [apispec.ext.bottle] Added bottle plugin (128). Thanks lucasrc.

0.21.0 (2017-04-21)

Features:

  • [apispec.ext.marshmallow] Sort list of required field names in generated spec (124). Thanks dradetsky.

0.20.1 (2017-04-18)

Bug fixes:

  • [apispec.ext.tornado]: Fix compatibility with Tornado>=4.5.
  • [apispec.ext.tornado]: Fix adding paths for handlers with coroutine methods in Python 2 (99).

0.20.0 (2017-03-19)

Features:

  • [apispec.core]: Definition helper functions receive the definition keyword argument, which is the current state of the definition (122). Thanks martinlatrille for the PR.

Other changes:

  • [apispec.ext.marshmallow] Backwards-incompatible: Remove dump parameter from schema2parameters, fields2parameters, and field2parameter (114). Thanks lafrech and frol for the feedback and lafrech for the PR.

0.19.0 (2017-03-05)

Features:

  • [apispec.core]: Add extra_fields parameter to APISpec.definition (110). Thanks lafrech for the PR.
  • [apispec.ext.marshmallow]: Preserve the order of choices (113). Thanks frol for the PR.

Bug fixes:

  • [apispec.ext.marshmallow]: 'discriminator' is no longer valid as field metadata. It should be defined by passing extra_fields={'discriminator': '...'} to APISpec.definition. Thanks for reporting, lafrech.
  • [apispec.ext.marshmallow]: Allow additional properties when translating Nested fields using allOf (108). Thanks lafrech for the suggestion and the PR.
  • [apispec.ext.marshmallow]: Respect dump_only and load_only specified in class Meta (84). Thanks lafrech for the fix.

Other changes:

  • Drop support for Python 3.3.

0.18.0 (2017-02-19)

Features:

  • [apispec.ext.marshmallow]: Translate allow_none on Fields to x-nullable (66). Thanks lafrech.

0.17.4 (2017-02-16)

Bug fixes:

  • [apispec.ext.marshmallow]: Fix corruption of Schema._declared_fields when serializing an APISpec (107). Thanks serebrov for the catch and patch.

0.17.3 (2017-01-21)

Bug fixes:

  • [apispec.ext.marshmallow]: Fix behavior when passing Schema instances to APISpec.definition. The Schema's class will correctly be registered as a an available ref (84). Thanks lafrech for reporting and for the PR.

0.17.2 (2017-01-03)

Bug fixes:

  • [apispec.ext.tornado]: Remove usage of inspect.getargspec for Python >= 3.3 (102). Thanks matijabesednik.

0.17.1 (2016-11-19)

Bug fixes:

  • [apispec.ext.marshmallow]: Prevent unnecessary warning when generating specs for marshmallow Schema's with autogenerated fields (95). Thanks khorolets reporting and for the PR.
  • [apispec.ext.marshmallow]: Correctly translate Length validator to minItems and maxItems for array-type fields (Nested and List) (97). Thanks YuriHeupa for reporting and for the PR.

0.17.0 (2016-10-30)

Features:

  • [apispec.ext.marshmallow]: Add support for properties that start with x-. Thanks martinlatrille for the PR.

0.16.0 (2016-10-12)

Features:

  • [apispec.core]: Allow description to be passed to APISpec.definition (93). Thanks martinlatrille.

0.15.0 (2016-10-02)

Features:

  • [apispec.ext.marshmallow]: Allow 'query' to be passed as a field location (89). Thanks lafrech.

Bug fixes:

  • [apispec.ext.flask]: Properly strip off basePath when APPLICATION_ROOT is set on a Flask app's config (78). Thanks deckar01 for reporting and asteinlein for the PR.

0.14.0 (2016-08-14)

Features:

  • [apispec.core]: Maintain order in which paths are added to a spec (87). Thanks ranjanashish for the PR.
  • [apispec.ext.marshmallow]: Maintain order of fields when ordered=True on Schema. Thanks again ranjanashish.

0.13.0 (2016-07-03)

Features:

  • [apispec.ext.marshmallow]: Add support for Dict field (80). Thanks ericb for the PR.
  • [apispec.ext.marshmallow]: dump_only fields add readOnly flag in OpenAPI spec (79). Thanks itajaja for the suggestion and PR.

Bug fixes:

  • [apispec.ext.marshmallow]: Properly exclude nested dump-only fields from parameters (82). Thanks incognick for the catch and patch.

Support:

  • Update tasks.py for compatibility with invoke>=0.13.0.

0.12.0 (2016-05-22)

Features:

  • [apispec.ext.marshmallow]: Inspect validators to set additional attributes (66). Thanks deckar01 for the PR.

Bug fixes:

  • [apispec.ext.marshmallow]: Respect partial parameters on Schemas (74). Thanks incognick for reporting.

0.11.1 (2016-05-02)

Bug fixes:

  • [apispec.ext.flask]: Flask plugin respects APPLICATION_ROOT from app's config (69). Thanks deckar01 for the catch and patch.
  • [apispec.ext.marshmallow]: Fix support for plural schema instances (71). Thanks again deckar01.

0.11.0 (2016-04-12)

Features:

  • Support vendor extensions on paths (65). Thanks lucascosta for the PR.
  • Backwards-incompatible: Remove support for old versions (<=0.15.0) of webargs.

Bug fixes:

  • Fix error message when plugin does not have a setup() function.
  • [apispec.ext.marshmallow] Fix bug in introspecting self-referencing marshmallow fields, i.e. fields.Nested('self') (55). Thanks whoiswes for reporting.
  • [apispec.ext.marshmallow] field2property no longer pops off location from a field's metadata (67).

Support:

  • Lots of new docs, including a User Guide and improved extension docs.

0.10.1 (2016-04-09)

Note: This version is a re-upload of 0.10.0. There is no 0.10.0 release on PyPI.

Features:

  • Add Tornado extension (62).

Bug fixes:

  • Compatibility fix with marshmallow>=2.7.0 (64).
  • Fix bug that raised error for Swagger parameters that didn't include the in key (63).

Big thanks lucascosta for all these changes.

0.9.1 (2016-03-17)

Bug fixes:

  • Fix generation of metadata for Nested fields (61). Thanks martinlatrille.

0.9.0 (2016-03-13)

Features:

  • Add APISpec.add_tags method for adding Swagger tags. Thanks martinlatrille.

Bug fixes:

  • Fix bug in marshmallow extension where metadata was being lost when converting marshmallow Schemas when many=False. Thanks again martinlatrille.

Other changes:

  • Remove duplicate SWAGGER_VERSION from api.ext.marshmallow.swagger.

Support:

  • Update docs to reflect rename of Swagger to OpenAPI.

0.8.0 (2016-03-06)

Features:

  • apispec.ext.marshmallow.swagger.schema2jsonschema properly introspects Schema instances when many=True (53). Thanks frol for the PR.

Bug fixes:

  • Fix error reporting when an invalid object is passed to schema2jsonschema or schema2parameters (52). Thanks again frol.

0.7.0 (2016-02-11)

Features:

  • APISpec.add_path accepts Path objects (49). Thanks Trii for the suggestion and the implementation.

Bug fixes:

  • Use correct field name in "required" array when load_from and dump_to are used (48). Thanks benbeadle for the catch and patch.

0.6.0 (2016-01-04)

Features:

  • Add APISpec#add_parameter for adding common Swagger parameter objects. Thanks jta.
  • The field name in a spec will be adjusted if a Field's load_from and dump_to attributes are the same. 43. Thanks again jta.

Bug fixes:

  • Fix bug that caused a stack overflow when adding nested Schemas to an APISpec (31, 41). Thanks alapshin and itajaja for reporting. Thanks itajaja for the patch.

0.5.0 (2015-12-13)

  • schema2jsonschema and schema2parameters can introspect a marshmallow Schema instance as well as a Schema class (37). Thanks frol.
  • Backwards-incompatible: The first argument to schema2jsonschema and schema2parameters was changed from schema_cls to schema.

Bug fixes:

  • Handle conflicting signatures for plugin helpers. Thanks AndrewPashkin for the catch and patch.

0.4.2 (2015-11-23)

  • Skip dump-only fields when dump=False is passed to schema2parameters and fields2parameters. Thanks frol.

Bug fixes:

  • Raise SwaggerError when validate_swagger fails. Thanks frol.

0.4.1 (2015-10-19)

  • Correctly pass dump parameter to field2parameters.

0.4.0 (2015-10-18)

  • Add dump parameter to field2property (32).

0.3.0 (2015-10-02)

  • Rename and repackage as "apispec".
  • Support enum field of JSON Schema based on OneOf and ContainsOnly validators.

0.2.0 (2015-09-27)

  • Add schema2parameters, fields2parameters, and field2parameters.
  • Removed Fixed from swagger.FIELD_MAPPING for compatibility with marshmallow>=2.0.0.

0.1.0 (2015-09-13)

  • First release.