我想获得一个修改后的响应对象。例如,我不知道如何在没有角色的情况下获取用户对象。
默认响应为:
{
"id": 6,
"username": "username",
"email": "user@email.com",
"provider": "local",
"confirmed": true,
"blocked": false,
"role": {
"id": 2,
"name": "Authenticated",
"description": "Default role given to authenticated user.",
"type": "authenticated"
}
}
现在,我希望在没有角色属性的情况下获得相同的响应。
{
"id": 6,
"username": "username",
"email": "user@email.com",
"provider": "local",
"confirmed": true,
"blocked": false
}
答案 0 :(得分:1)
当前,除非更改权限插件提供的UserController,否则您不能在Rest API中执行此操作,
然后您可以做的是使用Strapi提供的GraphQL插件,这样您就只能在客户端查询所需的字段。
有关如何使用GraphQL插件的文档为here。
答案 1 :(得分:1)
对于仍在努力解决此问题的任何人:
stradi的最新版本确实支持自定义查询,您可以传递包含要填充的所有关系名称的数组(仅关系!)。
如果您不想填充任何关系,可以将其保留为空,然后控制器将如下所示:
module.exports = {
UserWithoutRoles: ctx => {
return strapi.query('user').findOne({ id: ctx.params.id }, ['']);
}
}
如果您希望填充它,它将像这样:
module.exports = {
UserWithoutRoles: ctx => {
return strapi.query('user').findOne({ id: ctx.params.id }, ['role']);
}
}
另请参阅: [https://strapi.io/documentation/3.0.0-beta.x/concepts/queries.html#api-reference][1]