跳转到主要内容

Pyramid Rest 扩展

项目描述

Pyramid REST

概述

  • Pyramid扩展的初稿,用于构建RESTful Web应用程序。

  • 包括的功能

    • 资源定义,配置路由/视图,例如

      • 资源“application”

        • 路由 [GET/POST] /applications

        • 路由 [GET/DELETE/PUT] /applications/{application_id}

        • 路由 GET /applications/{application_id}/new

        • 路由 GET /applications/{application_id}/edit

      • 资源“application.user”

        • 路由 [GET/POST] /applications/{application_id}/users

        • 路由 [GET/DELETE/PUT] /applications/{application_id}/users/{user_id}

        • 路由 GET /applications/{application_id}/users/new

        • 路由 GET /applications/{application_id}/users/edit

      • 单一资源“application.user.score”

        • 路由 [GET/PUT] /applications/{application_id}/users/{user_id}/score

        • 路由 GET /applications/{application_id}/users/{user_id}/score/edit

    • 资源被添加到配置内省器,并与其路由、视图、子资源和父资源相关联;

    • 最终用户定义REST方法(index、create、show、update、delete、new、edit);

    • 默认情况下

      • 对于任何未提供的方法,将返回HTTP 405错误;

      • 权限“index、create、show、update、delete、new、edit”与相应的方法相关联;

  • 配置资源的三种方式

    1. 命令式使用 config.add_resource,它将视图模块中的类关联到资源

      config.add_resource('application')       # .views.applications:ApplicationsView
      config.add_resource('application.user')  # .views.application_users:ApplicationUsersView
    2. 声明式使用 Resource 类(cornice风格)

      app_users = Resource('application.user')
      
      @app_users.index()
      def index(context, request, application_id):
         pass
      
      @app_users.show()
      def show(context, request, application_id, id):
         pass
    3. 声明式使用 resource_config 装饰器

      @resource_config('application.user')
      class AppUsers(object):
      
         def __init__(self, context, request):
            pass
      
         def index(self, application_id):
            return {}
      
         @method_config(renderer='example.mako')
         def edit(self, application_id, id):
            return {}

接下来是什么?

  1. HTTP PATCH方法: http://tools.ietf.org/html/rfc5789

  2. 资源生成命令;

  3. 链接;

  4. 验证;

  5. 分页;

  6. 自动定义SQLAlchemy实体资源;

  7. 在add_resource中添加视图参数以覆盖视图定义;

代码/反馈

https://github.com/hadrien/pyramid_rest

变更日志

开发

0.2.8

  • 与更新后的zope.interfaces兼容性

  • 使用pyramid_mongokit的最新功能

  • 不再在setup.py中分发

0.2.5

  • 将mongo连接移动到pyramid_mongokit。

0.2.4

  • 切换到github。

  • 添加对mongo数据库的支持

  • ini文件中的设置 pyramid_rest.mongo 默认视为true

  • MongoConnection 已注册到注册表

  • request 添加了两个属性: mongo_connectionmongo_db

  • Mongo 连接从 os.environ['MONGO_URI'] 获取 uri

  • 数据库名称来自 os.environ['MONGO_DB_NAME']

  • 任何具有 model_class 类属性,且其值为 mongokit.Document 定义的资源视图都可以继承 pyramid_rest.mongo.DocumentView 以继承所有默认操作。

  • 添加自定义渲染器,根据接受头自动适应输出格式,支持的格式有 application/jsonapplication/bson

0.1.0

  • 将 ResourceUtility 重命名为 ResourceConfigurator 以使其角色更清晰。

  • 强制为路由模式变量和视图调用参数使用人类友好的名称,例如 /applications/{application_id}/users/{id} 和 show(context, request, application_id, id)

  • 移除配置资源名称中分隔符的能力:它始终是 ‘.’

  • 通过 add_singular_resource 指令或 Resourceresource_config 上的 singular=True 关键字参数添加单数资源

  • 将示例从测试目录移动到根目录:用于测试和文档。

0.0.1

  • 仅集合资源

  • 通过 add_resource 指令进行命令模式

  • 通过 Resource 类进行声明模式

  • 通过 resource_config 装饰器的声明模式视图

项目详情


下载文件

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

源代码分发

pyramid_rest-0.2.8.tar.gz (18.5 kB 查看哈希值)

上传时间 源代码

支持者

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