Усовершенствованная библиотека и дизайн API

#python #api #cmis

#python #API #cmis

Вопрос:

Я разрабатываю библиотеку, которая использует CMIS-совместимое хранилище в качестве серверной части (в моем случае на открытом воздухе). Я бы очень хотел создать «сексуальный» API, подобный API Flask-SQLAlchemy и Django. Проблема в том, что я новичок в таком продвинутом программировании на 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:

Вы ознакомились с cmislib? Это клиентский API для CMIS, написанный на Python. Это позволяет вам работать с объектами в Alfresco (или любом другом репозитории, совместимом с CMIS).

API предоставляет вам такие объекты, как «Документ» и «Папка». Я думаю, вам пришлось бы написать некоторое промежуточное программное обеспечение Django, чтобы выполнить то, что вы пытаетесь сделать в модели, но, по крайней мере, cmislib избавит вас от кодирования взаимодействия с Alfresco.

Надеюсь, это поможет,

Джефф

Комментарии:

1. Моя библиотека представляет собой инкапсуляцию cmislib, позволяющую создавать модели, аналогичные объектам базы данных django. Я использую cmislib для всего «стоящего» материала 🙂