Magnolia REST API

Posted

技术标签:

【中文标题】Magnolia REST API【英文标题】: 【发布时间】:2018-02-22 16:10:43 【问题描述】:

有什么方法可以请求 获取产品列表 可以使用等效的 JCR SQL2 检索它

select * from [mgnl:product] where productName like '%Nikon%'

如果只能使用自定义休息端点,请指点教程。

【问题讨论】:

【参考方案1】:

自 Magnolia REST 2.1 起更新,使用 v2 端点定义:

为了回答关于节点类型的第二个问题,这是它的样子,作为轻模块中的 YAML 文件,例如<module-name>/restEndpoints/delivery/my-products_v1.yaml

class: info.magnolia.rest.delivery.jcr.v2.JcrDeliveryEndpointDefinition
workspace: products
rootPath: /
includeSystemProperties: false
bypassWorkspaceAcls: true
depth: 2
nodeTypes:
  - mgnl:product
childNodeTypes:
  - mgnl:contentNode

Delivery endpoint 配置将节点类型用于包含

nodeTypes 指定要查询的 JCR 节点类型的主要列表——在您的情况下为 mgnl:product; 当depth 大于 0 时,childNodeTypes 指定将哪些子节点作为 JSON 对象包含在 主要结果中。

通过上述配置,您可以分别运行以下请求来查询产品或获取单个产品:

GET <host>/.rest/delivery/my-products/v1?productName[like]=%25Nikon%25 GET <host>/.rest/delivery/my-products/v1/path/to/Nikon-1

这与 Magnolia 以前的 Nodes endpoint 不同,后者不可配置,但只允许消费者排除节点类型。

【讨论】:

【参考方案2】:

是的,您可以使用内容交付端点来执行此操作。语法如下:GET /delivery/endpoint-prefix/v1?key1=value1&key2=value2 有关详细信息,请参阅https://git.magnolia-cms.com/projects/MODULES/repos/rest/browse/magnolia-rest-content-delivery。

【讨论】:

谢谢!非常有用的链接。 如何在 excludeNodeTypes 中传递要排除的节点类型列表?我的意思是 curl 命令中那个“列表”的语法......

以上是关于Magnolia REST API的主要内容,如果未能解决你的问题,请参考以下文章

如何从 WCS 向 Magnolia Rest 端点进行身份验证

Magnolia REST API

Magnolia 无头登录

CPU 负载问题 (Magnolia-5.3.3 Jackrabbit-2.8.0)

使用 Magnolia CMS 创建自定义类型的内容?

Magnolia 原型无法解析 info.magnolia.ui:magnolia-ui-project:pom:5.3