跳转到主要内容

为RESTful客户端和服务器应用程序创建面向资源的架构。

项目描述

python-docar 提供了一种声明性语法,用于定义客户端和服务器应用程序之间传递的消息。通过将Web应用程序的关注点转移到交换的文档上,它为您提供了实施面向文档架构的可能性。这样,您可以将文档(消息)映射到由URI标识的资源。这对于实现RESTful API的应用程序非常有用。在Django等框架的上下文中,docar作为支持库。

在服务器端,这些文档可以映射到底层模型存储。目前,python-docar 支持Django ORM后端和HTTP后端。其他模型映射器,如Sqlalchemy或MongoDB后端映射器,也是可能的。目前,MongoDB后端正在开发中。

相同的文档定义可以在客户端重用。未来,它将附带一个HTTP客户端,可以立即构建消息并将其发送到服务器应用程序。这些文档可以在客户端和服务器端进行验证。

目前,支持的唯一消息格式是一个非常简单的JSON格式。计划提供更多方言(如XML)或覆盖内置序列化器的可能性。

有关完整文档,请自行构建或访问readthedocs上的在线文档:http://readthedocs.org/docs/python-docar/

在github的问题跟踪器上报告任何问题。如有任何疑问,请发送邮件至crito[AT]30loops.net。

python-docarroar影响。

示例

以下代码是使用python-docar的简化示例。我们从使用Django后端开始

# First declare your document
from webapp.models import EntryModel, AuthorModel
from docar import Document, Collection, fields

class Author(Document):
    name = fields.StringField()

    class Meta:
        backend_type = 'django'
        model = AuthorModel
        identifier = 'name'

class BlogEntry(Document):
    id = fields.NumberField()
    title = fields.StringField()
    body = fields.StringField()
    published = fields.BooleanField(default=False)
    author = fields.ForeignDocument(Author)

    class Meta:
        backend_type = 'django'
        model = EntryModel
        #identifier = 'id'  # The identifier defaults to 'id'

# You can also declare collections of documents
class Blog(Collection):
    document = BlogEntry

您可以在应用程序的视图中使用这些文档

from webapp.documents import Author, BlogEntry, Blog

entry = BlogEntry({'id': 1})

# Bind the document to a model
entry.fetch()

我还可以更改文档的属性并将其保存回模型

entry.title = "20000 Leagues under the sea"
entry.save()  # --> saves to the django model backend

render方法将文档渲染为标准化的字典。序列化器接受标准化输出,并将其转换为所需的消息格式。

# render the document as a json string
entry.render()

{
    "id": 1,
    "title": "20000 Leagues under the sea",
    "body": "The whole story about captain Nemo ...",
    "published": True,
    "author": {
        "name": "Jules Vernes",
    }
}

安装

从github克隆最新源代码。由于开发速度很快,因此始终使用最新提交是个好主意

$ git clone git://github.com/30loops/python-docar.git
$ cd python-docar
$ sudo python setup.py install

开发

此模块附带了一个详尽的测试套件。以下是如何运行它的方法

$ python setup.py nosetests

文档

要构建文档,需要安装sphinx

$ cd docs
$ make html

您可以在docs/_build/html/中找到文档。

免责声明

使用此软件不提供任何保证。它是在BSD许可下发布的。有关详细信息,请参阅LICENSE

项目详情


下载文件

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

源分布

docar-0.9.1.tar.gz (230.6 kB 查看哈希值)

上传时间

由以下机构支持