Changelog for Falcon 1.3.0 ========================== Breaking Changes ---------------- (None) Changes to Supported Platforms ------------------------------ - CPython 3.6 is now fully supported. - Falcon appears to work well on PyPy3.5, but we are waiting until that platform is out of beta before officially supporting it. - Support for both CPython 2.6 and Jython 2.7 is now deprecated and will be discontinued in Falcon 2.0. New & Improved -------------- - We added built-in resource representation serialization and deserialization, including input validation based on JSON Schema. (See also: :ref:`Media `) - URI template field converters are now supported. We expect to expand this feature over time. (See also: :ref:`Field Converters `) - A new method, :meth:`~falcon.Request.get_param_as_datetime`, was added to :class:`~falcon.Request`. - A number of attributes were added to :class:`~falcon.Request` to make proxy information easier to consume. These include the :attr:`~falcon.Request.forwarded`, :attr:`~falcon.Request.forwarded_uri`, :attr:`~falcon.Request.forwarded_scheme`, :attr:`~falcon.Request.forwarded_host`, and :attr:`~falcon.Request.forwarded_prefix` attributes. The :attr:`~falcon.Request.prefix` attribute was also added as part of this work. - A :attr:`~falcon.Request.referer` attribute was added to :class:`~falcon.Request`. - We implemented ``__repr__()`` for :class:`~falcon.Request`, :class:`~falcon.Response`, and :class:`~.HTTPError` to aid in debugging. - A number of Internet media type constants were defined to make it easier to check and set content type headers. (See also: :ref:`Media Type Constants `) - Several new 5xx error classes were implemented. (See also: :ref:`Error Handling `) Fixed ----- - If even a single cookie in the request to the server is malformed, none of the cookies will be parsed (all-or-nothing). Change the parser to simply skip bad cookies (best-effort). - :class:`~.API` instances are not pickleable. Modify the default router to fix this.