高级库和API设计

2 投票
1 回答
544 浏览
提问于 2025-04-16 16:49

我正在开发一个库,这个库使用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

撰写回答