单一集合类型中的 API 调用 Strapi v4 中未显示图像 URL
2021-12-28
19280
{
id: 2,
attributes: {
title: ‘Test Title’,
body: ‘Test Body’,
date: null,
createdAt: ‘2021-11-30T20:52:09.206Z’,
updatedAt: ‘2021-11-30T20:57:26.724Z’,
publishedAt: ‘2021-11-30T20:57:26.720Z’
}
3个回答
我自己也遇到过这种问题。我无法使用 Strapi 4 和 Nuxtjs 将其与查询引擎和实体引擎配合使用。
要显示 API 中的图像或(动态)组件,请务必使用:
http://localhost:1337/api/[your api]?populate=*
遗憾的是,默认情况下不显示它们。他们说:
我们不会在 Strapi 中默认自动填充任何字段,因为不这样做的目的主要是性能,但也是为了安全性,因为在 v4 中,如果某个角色无权访问相关内容类型上的查找控制器,则无法填充它。
在 v4 上进行此更改是不可能的,因为这将被视为破坏,但我们对超出默认值的功能请求持开放态度。
如果您想对具有嵌套组件的动态区域执行此操作,您应该执行以下操作:
http://localhost:1337/api/[your api]?populate=ImagesRepeater.image
这里
ImageRepeater
是块的名称,
image
是组件内的字段。
如果您想在不填充 URL 的情况下实现相同功能,您可以在此处找到更多文档: https://docs.strapi.io/developer-docs/latest/developer-resources/database-apis-reference/rest/populating-fields.html#population
BrianR.
2022-01-12
Strapi 4 要求您填充您的请求(请参阅: 人口文档 )
可能看起来像这样(针对 2 级人口):
// populate request
const qs = require('qs')
const query = qs.stringify(
{
populate: {
Title: {
populate: ['Image']
}
}
},
{
encodeValuesOnly: true
}
)
// get id
const id = yourId
// get rquest
const Response= await axios.get(
`http://localhost:1337/api/[your api]/${id }/?${query}`
)
DontEatMyCookies
2021-12-28
在网址末尾添加 {?populate=*> 。例如, http://localhost:1337/api/cards?populate= *
Nikita
2022-07-13