如何在strapi API响应中增加关系深度?



我使用Strapi为我的小应用程序构建API。在一个模型中,我有以下实体:

ArticleArticle TranslationTagTag Translation。一篇文章有多篇文章翻译。每篇文章翻译有许多标签。每个标签有许多标签翻译

我的问题是当我向Article发出get请求时,我没有收到标签翻译。我想对斯特拉皮来说太深了。如果我只是向标签标签翻译发出get请求,响应是正确的。

如何增加关系响应的深度?

你需要重写控制器,像这样

module.exports = {
/**
* Promise to fetch all records
*
* @return {Promise}
*/
find: async (ctx) => {
return strapi.query('model-name').find(ctx.query, [
"entries",
"entries.image",
"entries.expandable_children",
"entries.expandable_children.image",
"entries.expandable_children.localizations",
"entries.localizations",
"localizations"
]);
},
findOne: async (ctx) => {
const { id } = ctx.params;
return strapi.query('model-name').findOne({ id }, [
"entries",
"entries.image",
"entries.expandable_children",
"entries.expandable_children.image",
"entries.expandable_children.localizations",
"entries.localizations",
"localizations"
]);
},
};

您可以尝试在请求URL的populate部分下添加Tag Translation字段,而不是覆盖任何控制器。

eg: populate[0]=article.tag.tag-translation

如果使用GraphQL这样就容易多了。我在我开发的一个应用程序中使用了类似的东西,效果很好。

相关内容

  • 没有找到相关文章

最新更新