跳转到主要内容

REST工具包

项目描述

rest_toolkit 是一个Python包,它提供了一种非常方便的方式来构建REST服务器。它建立在 Pyramid 之上,但您不需要了解Pyramid就可以使用rest_toolkit。

快速示例

这是一个最小示例,它定义了一个带有 GET 视图的 Root 资源,并启动了一个简单的HTTP服务器。如果您运行此示例,您可以通过请求 http://localhost:8080/ 来看到包含状态消息的JSON响应。

from rest_toolkit import quick_serve
from rest_toolkit import resource


@resource('/')
class Root(object):
    def __init__(self, request):
        pass


@Root.GET()
def show_root(root, request):
    return {'status': 'OK'}


if __name__ == '__main__':
    quick_serve()

变更日志

0.17 - 2019年1月10日

  • 修复了NotImplemented的使用

0.16 - 2018年4月14日

  • 修复了处理数组中JSON验证错误时的错误

0.15 - 2018年4月5日

  • 不要在204响应中设置content-type头

0.14 - 2017年5月25日

  • 修复了对unauthenticated_userid的Pyramid废弃警告

0.13 - 2016年8月18日

  • 如果资源构造函数或视图已引发具有JSON内容类型的异常,则保留响应异常

  • 修改默认的JSON验证错误响应格式:在响应数据中使用具有验证错误的字段作为键。

  • 使用自定义的 rest_toolkit.ext.jsonschema.JSONValidationError 异常来处理 JSON 验证错误。这允许通过定义一个 JSONValidationError 视图来轻松自定义验证错误响应。

0.12 - 2016年6月1日

  • 将额外的资源和控制器参数传递给底层的 add_view() 调用。这允许使用视图的谓词。

0.11 - 2016年5月6日

  • 允许 update_from_dict 返回自定义响应,这将用于默认的 PATCH 和 PUT 视图。

0.10 - 2016年5月4日

  • 不需要为 OPTIONS 请求任何权限。这可能会严重破坏认证,因为 OPTIONS 将被调用来检查是否可以发送与认证相关的头。

  • 如果启用调试,则不要注册捕获所有异常的视图。

0.9 - 2015年9月20日

  • 默认不允许 SQLResource 对象更改主键。这可以通过资源类上的新 allow_primary_key_change 变量进行切换。

  • 为使用默认视图的资源正确设置 Access-Control-Allow-Methods 头。

0.8 - 2015年9月5日

  • 正确处理控制器的 OPTIONS 请求。

  • 对于通用错误视图,不需要任何权限。这修复了在默认权限网站上错误被转换为禁止错误的问题。

0.7 - 2015年3月12日

  • 修复 SQL 资源的编辑。

  • 更新默认视图和验证扩展,不假设 to_dict() 返回格式。

  • 如果设置 rest_toolkit.debug,或者将 REST_TOOLKIT_DEBUG 环境变量设置为 true,或者设置 pyramid 的 debug-all 标志,则系统错误异常处理程序将在响应中添加一个新 traceback 键的异常跟踪。

  • 添加对集合资源的初步支持。这些可以处理创建子对象的 POST 请求。

0.6 - 2014年11月4日

  • 确保路径不以斜杠结尾的资源控制器是可访问的。这修复了 问题 12

  • 修复代码和文档之间的不匹配:使用 request_method 作为控制器装饰器的参数名称。

0.5 - 2014年10月24日

  • 允许覆盖控制器的请求方法。这修复了 问题 10

  • read_permissionupdate_permissiondelete_permission 选项添加到 resource 装饰器中,以设置默认视图的权限。这修复了 问题 8

  • 依赖于 pyramid_sqlalchemy 为我们的 SQL 相关测试提供的固定值。

  • 在将 HTTP 响应转换为 JSON 时保留头信息。这修复了 问题 6

  • 现在可以使用 resource 装饰器的 route_name 参数配置资源路由名称。

0.4.1 - 2014年7月18日

  • 确保将所有引发的 HTTP 异常转换为 JSON 响应。

0.4 - 2014年7月18日

本发布重点在于改进文档和修复 SQL 扩展中的问题。

  • 修复 SQLResource 默认视图中的一些错误。

  • 如果您使用 pyramid_sqlalchemy 来处理 SQLAlchemy 集成,则不再需要配置 SQL 扩展。

  • Travis 现已配置为自动在 CPython 2.7、CPython 3.3、CPython 3.4 和 PyPy 上运行测试。

  • 修复了通用错误视图中的 Python 3 兼容性问题。

  • 删除了对 Python 2.6 的显式支持。测试使用了过多的集合字面量,使得 Python 2.6 不值得使用。

  • 修改 EditableResource 以不继承自 ViewableResource。这使得编辑和查看之间的分离更加明确,并解决了 Python 无法处理基类被多次使用的继承方案的问题。

  • 从 EditableResource.updat_from_dict() 中删除了 replace 的默认值。这没有起到任何有用的作用,并且可能会令人困惑。

  • 在 SQLResource 构造函数中设置 self.request

0.3 - 2014年7月11日

此版本修复了 SQL 扩展中的几个关键错误。

  • 修复了上下文查询的调用。

  • 当找不到 SQL 行时,从 SQLResource 返回未找到错误,而不是内部错误。

  • 不要自动启用 SQLResource 的默认视图。这应该是由用户明确决定的。

0.2.2 - 2014年7月11日

  • 修复了 SQL 扩展中的几个错误。

0.2.1 - 2014年7月10日

  • 将 MANIFEST.in 添加到源分发安装包中。

0.2 - 2014年7月9日

  • 添加了几个演示,展示了如何使用 rest_toolkit 与 AngularJS 一起使用。

  • 添加了对默认的 DELETE、GET、PATCH 和 PUT 视图的 support。

  • 各种文档修复和改进。

0.1 - 2014年6月24日发布

这是第一个版本。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

rest_toolkit-0.17.tar.gz (30.5 kB 查看哈希值)

上传时间

构建分发

rest_toolkit-0.17-py2.py3-none-any.whl (17.1 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面