Magnolia REST API

时间:2018-02-22 16:10:44

标签: rest magnolia

有没有办法请求Magnolia REST API列出产品 可以使用相当于JCR SQL2

的方式检索
select * from [mgnl:product] where productName like '%Nikon%'

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

2 个答案:

答案 0 :(得分:4)

使用v2端点定义

从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