媒体字段未显示在 strapi v4 的 api 响应中
2021-12-18
8901
我的 strapi (v4) 服务器集合中有一个名为 Picture 的媒体字段,但是当我请求 localhost:1337/api/products 时,它并没有出现在 api 响应中。
3个回答
解决了,耶!
Strapi v4 的文档说:
Relations population
By default, relations are not populated when fetching entries.
Queries can accept a populate parameter to explicitly define which fields to populate, with the following syntax:
GET /api/books?populate=*
所以我只需在 GET 请求后加上
?populate=*
答案:
localhost:1337/api/products?populate=*
Ammar Uppal
2021-12-18
阅读 Strapi 文档 - 此处 后,发现您可以直接填充媒体字段 -
const qs = require('qs');
const query = qs.stringify({
populate: [
'seoData',
'seoData.sharedImage',
'seoData.sharedImage.media',
],
}, {
encodeValuesOnly: true,
});
await request(`/api/articles?${query}`);
而不是填充所有(通过 *),这不是一个好的做法,因为
- 数据分类 - 在大多数情况下,您不需要返回整个有效负载,例如集合发布时等。
- 性能 - 当您仅选择必要的内容时,对数据库的查询将更小,因此结果将更快。
- 减少有效负载 - 当您仅选择必要的内容时,您可以减少返回给客户端的有效负载。
Avi Siboni
2022-06-12
最后写入,populate=picture(媒体字段的名称)
Kushal Gurung
2022-05-31