Как получить дочерние элементы, которые не удаляются, с помощью конечной точки nuxeo rest?

Когда я вызываю конечную точку http://localhost:8080/nuxeo/api/v1/id/bad6cbc5-b75f-4373-981f-6908cec66779?enrichers.document=children, она возвращает все дочерние элементы, включая удаленные элементы. Но мне нужно получить только активные элементы, и я думаю, что я должен добавить запрос isTrashed=false в конечную точку. Но http://localhost:8080/nuxeo/api/v1/id/bad6cbc5-b75f-4373-981f-6908cec66779?enrichers.document=children&isTrashed=false ни на что не влияет. Как я могу получить только активные дочерние элементы с сервера nuxeo, используя API отдыха?


person M.M    schedule 12.08.2020    source источник


Ответы (1)


Конечная точка /nuxeo/api/v1/id с обогатителем children не поддерживает этот тип фильтрации.

Я вижу два варианта:

  1. Реализуйте собственный обогащатель, который будет поддерживать фильтрацию испорченных документов. Обогатитель children реализован классом org.nuxeo.ecm.core.io.marshallers.json.enrichers.ChildrenJsonEnricher, поэтому вы можете вдохновить его, как это сделать.
  2. Используйте другую конечную точку с поставщиком страниц, который поддерживает фильтрацию документов, удаленных из корзины: /nuxeo/api/v1/search/pp/advanced_document_content/execute?&ecm_parentId=bad6cbc5-b75f-4373-981f-6908cec66779&ecm_trashed=false

Преимущества второго варианта:

  • разбиение по страницам — просто добавьте currentPageIndex=0&offset=0&pageSize=20 к запросу
  • свойства — вы можете определить, какие свойства вам нужны, добавив заголовок: properties:dublincore,common,uid,file
  • расширители — это означает, что вы можете использовать обогащающие элементы для каждого дочернего элемента и получать, например, разрешение или URL-адрес эскиза для каждого дочернего элемента. Для этого добавьте этот заголовок: enrichers-document: thumbnail, permissions

Пример вызова curl:

curl -X GET -u Administrator:Administrator \
 -H "properties:dublincore,common,uid,file" \
 -H "enrichers-document: thumbnail, permissions" \
 "http://localhost:8080/nuxeo/api/v1/search/pp/advanced_document_content/execute?&ecm_parentId=bad6cbc5-b75f-4373-981f-6908cec66779&ecm_trashed=false" | jq
person cgrim    schedule 12.08.2020
comment
Я меняю конечную точку на localhost:8080/nuxeo/api/v1/id/, но это не влияет - person M.M; 12.08.2020
comment
Извините, я упустил из виду, что вы используете конечную точку /nuxeo/api/v1/id, а не nuxeo/api/v1/search/pp. Я обновил ответ правильной информацией, которая может вам помочь - надеюсь. - person cgrim; 12.08.2020