有没有办法请求Magnolia REST API列出产品 可以使用相当于JCR SQL2
的方式检索select * from [mgnl:product] where productName like '%Nikon%'
如果只能使用自定义休息终点,请指教程。
答案 0 :(得分:4)
从Magnolia REST 2.1更新:
要回答关于节点类型的第二个问题,这里看起来像是光模块中的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配置将节点类型带到 include 。
nodeTypes
指定要查询的JCR节点类型的主要列表 - 在您的案例中mgnl:product
; childNodeTypes
指定当depth
大于0时,在主要结果下包含哪些子节点作为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不同,后者不可配置,但只允许消费者排除节点类型。
答案 1 :(得分:1)
是的,您可以使用内容传送端点来执行此操作。语法如:GET /delivery/{endpoint-prefix}/v1?key1=value1&key2=value2
有关详细信息,请参阅https://git.magnolia-cms.com/projects/MODULES/repos/rest/browse/magnolia-rest-content-delivery。