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 端点进行身份验证
CPU 负载问题 (Magnolia-5.3.3 Jackrabbit-2.8.0)
Magnolia 原型无法解析 info.magnolia.ui:magnolia-ui-project:pom:5.3