玉兰休息 API

Magnolia REST API

是否有任何方法可以请求 Magnolia REST API 获取产品列表 可以用等价的 JCR SQL2

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

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

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

从 Magnolia REST 2.1 开始更新,使用 v2 端点定义:

要回答关于 node-types 的第二个问题,这是它的样子,作为轻型模块中的 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 配置采用 node-types 到 包含

  • nodeTypes 指定要查询的 JCR 节点类型的主要列表——在您的例子中 mgnl:product
  • depth 大于0.

通过以上配置,您可以运行查询商品或获取单品的请求分别为:

  • 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 不同,后者不可配置,但只允许消费者 排除 node-types.