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

如何优化Directus API查询,仅获取指定语言的多语言内容字段?

解决Directus API仅获取指定语言翻译字段的问题

核心问题分析

你之前的请求存在两个关键错误:

  1. URL中出现了两个?,这会导致第二个?后的参数被忽略,属于HTTP请求语法错误。
  2. 嵌套筛选的逻辑虽然方向正确,但因语法问题未生效,导致仍返回全量翻译内容。

正确的API请求示例

https://xxx/items/xxx_page?fields=*,page_contents.*,page_contents.translations.*&filter[languages_code]=it-IT&filter[page_contents][translations][languages_code][_eq]=it-IT

关键优化说明

  • 修正URL参数格式:URL仅能有一个起始的?,后续所有参数都用&连接,这是HTTP请求的基础规则。
  • 精准过滤嵌套翻译:filter[page_contents][translations][languages_code][_eq]=it-IT 会确保page_contents关联的translations集合中,仅返回languages_code匹配it-IT的条目,而非返回全量翻译后再做过滤。
  • 字段精简(可选):如果不需要模型的全部字段,可把*替换为具体字段名(比如id,title,slug),进一步减少返回数据量,提升加载速度。

额外优化建议

若你的Directus版本支持**_locale参数**(针对内置多语言字段,而非自定义Translations集合),可以用更简洁的写法:

https://xxx/items/xxx_page?_locale=it-IT&fields=*,page_contents.*,page_contents.translations.*

该参数会自动过滤所有关联翻译字段中匹配指定语言的条目,无需手动编写多层filter。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 09:46:03