You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Magnolia CMS Delivery Endpoint过滤器失效,返回全部节点求助

Magnolia Delivery Endpoint API过滤器不生效的排查与解决办法

我来帮你梳理下过滤器失效的几个核心原因,以及对应的修复方案:

1. 过滤器参数语法错误

你当前请求直接用@name=03作为参数,但Magnolia 5.6的Delivery API要求过滤器必须通过filter参数传递,格式为filter=[属性名]:[值]。

修正后的请求示例:

curl -X GET "http://localhost:8080/magnoliaAuthor/.rest/delivery/website/v1/travel/hello?filter=@name:03"

2. 系统属性未开启导致无法过滤@name

你的端点配置里设置了includeSystemProperties: false,而@name属于Magnolia的系统属性。如果不开启这个配置,系统属性不会被加载,自然无法用它作为过滤条件。

修改配置:

includeSystemProperties: true

3. 深度配置限制了子节点加载

你设置的depth: 2意味着从根路径/开始,最多返回2级节点:

  • 第1级:/travel
  • 第2级:/travel/hello

如果目标节点03是hello的子节点(第3级),这个节点根本不会被端点加载,过滤器也就找不到它。

调整depth值:

params:
  website:
    depth: 3 # 或者设为-1表示不限深度
    # 其他配置保持不变

4. 子节点类型配置不匹配

你的childNodeTypes只包含mgnl:area和mgnl:component,如果目标节点03是mgnl:page类型,作为hello(page类型)的子节点会被端点拒绝返回,过滤器也无法匹配。

更新childNodeTypes:

params:
  website:
    childNodeTypes:
      - mgnl:page
      - mgnl:area
      - mgnl:component
    # 其他配置保持不变

额外提示:直接请求目标节点路径

如果你的目标是获取/travel/hello/03这个特定节点,其实不需要过滤器,直接请求对应路径更高效:

curl -X GET "http://localhost:8080/magnoliaAuthor/.rest/delivery/website/v1/travel/hello/03"

内容的提问来源于stack exchange,提问作者Albie Morken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:07:47