Changelog for Falcon 1.4.0#

Breaking Changes#

Changes to Supported Platforms#

  • Python 3 is now supported on PyPy as of PyPy3.5 v5.10.

  • Support for CPython 3.3 is now deprecated and will be removed in Falcon 2.0.

  • As with the previous release, Python 2.6 and Jython 2.7 remain deprecated and will no longer be supported in Falcon 2.0.

New & Improved#

  • We added a new method, add_static_route(), that makes it easy to serve files from a local directory. This feature provides an alternative to serving files from the web server when you don’t have that option, when authorization is required, or for testing purposes.

  • Arguments can now be passed to hooks (see Hooks).

  • The default JSON media type handler will now use ujson, if available, to speed up JSON (de)serialization under CPython.

  • Semantic validation via the format keyword is now enabled for the validate() JSON Schema decorator.

  • We added a new helper, get_param_as_uuid(), to the Request class.

  • Falcon now supports WebDAV methods (RFC 3253), such as UPDATE and REPORT.

  • We added a new property, downloadable_as, to the Response class for setting the Content-Disposition header.

  • create_http_method_map() has been refactored into two new methods, map_http_methods() and set_default_responders(), so that custom routers can better pick and choose the functionality they need. The original method is still available for backwards-compatibility, but will be removed in a future release.

  • We added a new json param to simulate_request() et al. to automatically serialize the request body from a JSON serializable object or type (for a complete list of serializable types, see json.JSONEncoder).

  • TestClient’s simulate_*() methods now call simulate_request() to make it easier for subclasses to override TestClient’s behavior.

  • TestClient can now be configured with a default set of headers to send with every request.

  • The FAQ has been reorganized and greatly expanded.

  • We restyled the docs to match https://falconframework.org

Fixed#

  • Forwarded headers containing quoted strings with commas were not being parsed correctly. This has been fixed, and the parser generally made more robust.

  • JSONHandler was raising an error under Python 2.x when serializing strings containing Unicode code points. This issue has been fixed.

  • Overriding a resource class and calling its responders via super() did not work when passing URI template params as positional arguments. This has now been fixed.

  • Python 3.6 was generating warnings for strings containing '\s' within Falcon. These strings have been converted to raw strings to mitigate the warning.

  • Several syntax errors were found and fixed in the code examples used in the docs.

Contributors to this Release#

Many thanks to all of our talented and stylish contributors for this release!

  • GriffGeorge

  • hynek

  • kgriffs

  • rhemz

  • santeyio

  • timc13

  • tyronegroves

  • vytas7

  • zhanghanyun