Directus Tags标签字段REST Api检索Filter调用方法(含多国语言)
Tags字段用户体验非常好,但是在数据调用的时候需要注意,如果字段类型是json
目前是无法被Filter的,rijkvanzanten的原话
Directus currently isn't capable of searching in the stored value of JSON fields, see #7277 for the open feature request about that
如果查询json的格式会出现这样的错误:
{"errors":[{"message":"\"json\" field type does not contain the \"_contains\" filter operator","extensions":{"code":"INVALID_QUERY"}}]}
但是今年5月该需求在这里又被重启,相信不久的将来应该可以支持。
那么现在可行的方案是,添加字段的时候把格式选为csv
,然后按照以下方法调用:
以下用例,Data Model
为articles
,字段名为tags
,值为tagName
非translations字段
查找tags中包含tagName
的内容
/items/articles?field=*&filter[tags][_contains]=tagName
列出所有tags
/items/articles?field=tags&filter[tags][_contains]=tagName
translations字段
查找tags包含tagName
并返回语言为en
的内容
/items/articles?fields=*.*&deep[translations][_filter][languages_code][_eq]=en&filter[translations][tags][_contains]=tagName
列出所有tags数据
/items/articles?fields=translations.tags&deep[translations][_filter][languages_code][_eq]=en&filter[translations][tags][_neq]=null
最后推荐一个很好用的插件:Directus extension - M2M tags,因为Directus自带的tags标签是无法编辑内容的,而该插件可以建立M2M的关联数据,但是需要注意的是不支持translations多语言。