一个用于 Python 的 CMIS API 库,第 1 部分: cmislib 简介
2010-05-04 00:00:00 来源:WEB开发网可以传入几个可选参数,大部分用于处理结果集分页。
来自服务的响应将是一个 Atom 提要。
但是,规范没有告诉您用于检索这个集合的确切 URL,这留给供应商处理。cmislib 的用途之一就是确定那个 URL 以及如何将响应转换为可以以 Python 方式使用的 Python 对象。清单 1 展示了这个交互在 Python shell 中的外观:
清单 1. 列示一个存储库中签出的文档
>>> rs = repo.getCheckedOutDocs()
>>> len(rs)
2
>>> for doc in rs:
... doc.title
...
u'Response XML (Working Copy)'
u'd1 (Working Copy)'
类似地,假设您想在一个文档上执行一个签出操作。CMIS 规范将告知您:要执行一个签出操作,您需要发布一个 Atom 条目到 checkedout 集合,存储库将返回一个 Atom 条目,该条目表示刚刚签出的对象的 Private Working Copy (PWC)。如果您使用 cmislib,则无需担心如何确定那个集合,如何构建和发布 Atom 条目 XML,以及如何处理 XML 响应。相反,您只需调用对象上的 checkout 方法,cmislib 将返回一个表示该 PWC 的 Document 对象。清单 2 展示了这个交互:
清单 2. 签出一个文档
>>> doc.title
u'testdoc'
>>> pwc = doc.checkout()
>>> pwc.title
u'testdoc (Working Copy)'
>>> doc.checkedOut
True
开发和测试方法
有一点很重要:cmislib 的编写应该尽可能遵循 CMIS 规范。因此,第一步是并排打开 Eclipse 和 CMIS 规范,标出(stub out)类和方法。我将对规范的交叉引用添加到行内(in-line)注释中,以便稍后我返回来实现该方法时能够迅速发现规范内的适用点。
赞助商链接