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月该需求在这里又被重启,相信不久的将来应该可以支持。

Directus Tags标签字段REST Api检索Filter调用方法(含多国语言)

那么现在可行的方案是,添加字段的时候把格式选为csv,然后按照以下方法调用:

以下用例,Data Modelarticles,字段名为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多语言。

Post Comment