Falcon 1.2.0的更改日志

正在中断更改

(无)

新的和改进的

  • 一个新的 default Kwarg加入 get_header() .

  • A delete_header() 方法已添加到 falcon.Response .

  • 添加了几个新的HTTP状态代码和错误类,例如 falcon.HTTPFailedDependency .

  • 如果 ujson 已安装,将使用它代替 json 加快cpython下的错误序列化和查询字符串解析。Pypy用户应继续使用 json .

  • 这个 independent_middleware Kwarg加入 falcon.API 使能执行 process_response() 中间件方法,即使在 process_request() 引发错误。

  • 指定路由时,URL模板中现在允许使用单字符字段名。

  • 当试图添加与已添加路由冲突的路由时,将返回详细的错误消息。

  • 现在可以在使用测试框架模拟请求时指定HTTP协议版本。

  • 这个 falcon.ResponseOptions 添加了类,以及 secure_cookies_by_default 设置cookie时控制“secure”属性的默认值的选项。这可以通过提供一种方法来切换是否需要HTTPS来简化测试。

  • portnetlocscheme 属性已添加到 falcon.Request 班级。这个 protocol 属性现在已弃用,将在将来的版本中删除。

  • 这个 strip_url_path_trailing_slash 已添加到 falcon.RequestOptions 控制是否在URL路径中保留尾随斜杠(如果存在)。当启用此选项(默认)时,URL路径将通过剥离尾随斜杠字符进行规范化。这允许应用程序为可能以正斜杠结尾或不以正斜杠结尾的路径定义到资源的单个路由。但是,在某些情况下,这种行为可能有问题,例如在使用基于URL的签名的身份验证方案时。因此, strip_url_path_trailing_slash 引入了使此行为可配置的选项。

  • 改进文档 falcon.HTTPError 尤其是在自定义错误序列化方面。

  • 其他对Falcon文档外观的改进。

  • docs中的教程经过了修改,现在包含了测试falcon应用程序的指导。

固定的

  • 某些非字母数字字符(如括号)在由文本和字段定义组成的复杂URI模板路径段中处理不当。

  • 当wsgi服务器不提供 wsgi.file_wrapper 对象,Falcon Wrapps Response.stream 在不实现的简单迭代器对象中 close() .应该修改迭代器以实现 close() 调用基础流的 close() 释放系统资源。

  • 测试框架没有正确解析Jython下的cookie。

  • 在测试框架中解析cookie时,不会去除空白。

  • vary头并不总是由默认错误序列化程序设置的。

  • 虽然在PEP-3333中未指定返回到wsgi服务器的状态必须是类型 str ,将响应的状态设置为 unicode python 2.6或2.7下的字符串可能导致wsgi服务器引发错误。因此,如果状态字符串的类型错误,则必须首先对其进行转换。

  • 默认选项responder返回204,而它应该返回200。RFC7231特别声明,在对选项请求的响应中,内容长度应为零,这意味着状态代码为200,因为RFC7230声明,在任何状态代码为204的响应中,内容长度不得设置。