高级库和API设计
我正在开发一个库,这个库使用CMIS兼容的存储作为后端(在我的例子中是Alfresco)。我希望能创建一个像Flask-SQLAlchemy和Django那样“好看”的API。不过,我对在Python中进行这样的高级编程还不太熟悉。以下是我想象中的使用这个库的方式:
# Here is the connector that does the actual request to the CMIS server
c = CMISConnector('url', 'username', 'password')
# Here I declare the model with the desired property fields. A model
# can be either a folder or a document in Alfresco
class SomeModel(c.Model):
name = c.Property('cmis:name')
# Some query and create examples...
foo = SomeModel.query.first(name='John Doe')
print foo.name
bar = SomeModel(name='Jane Doe')
bar.save()
因为整个对象模型只有一个后端,所以我希望每个继承自Model的类都能使用同一个连接,而不需要每次都明确注册它。
任何帮助都非常感谢 :)
1 个回答
2
你有没有看看cmislib?这是一个用Python写的CMIS客户端API。它可以让你在Alfresco(或者任何其他支持CMIS的存储库)中处理对象。
这个API提供了一些对象,比如“文档”和“文件夹”。我觉得你可能需要写一些Django中间件来处理你想做的模型相关的事情,但至少cmislib可以帮你省去与Alfresco交互的代码。
希望这对你有帮助,
Jeff