1 回答
TA贡献1816条经验 获得超6个赞
我想知道如何将动态/计算字段添加到 Strapi API 服务器响应
基本上您正在寻找自定义数据响应,很可能与自定义端点结合使用(因为您不想覆盖现有端点)。
您可以通过扩展现有的 API 来做到这一点,让我们分解一下:
添加自定义 API 端点 添加路由
B. 添加处理程序
C. 添加权限运行一些逻辑
返回自定义响应
(1) 要将自定义 API 端点添加到用户定义的内容类型,您需要 (a) 在以下目录中添加路由:
./api/{content-type}/config/routes.json
像这样(在路由数组中):
{
"method": "GET",
"path": "/teams/customData",
"handler": "team.findCustomHandler",
"config": {
"policies": []
}
}
(b) 在以下目录中添加一个方法:
./api/{content-type}/controllers/{Content-Type}.js
像这样:
'use strict';
module.exports = {
async findCustomHandler(ctx) {
//your logic here
}
};
您可以使用原始的find方法开始并使用您的逻辑添加您的值(这是一个很好的例子):
async find(ctx) {
let entities;
if (ctx.query._q) {
entities = await strapi.services.team.search(ctx.query);
} else {
entities = await strapi.services.team.find(ctx.query);
}
// TODO: add your extra calculated value
return entities.map(entity => {
// You can do this here
sanitizeEntity(entity, { model: strapi.models.restaurant }));
}
}
您可以查看的文档:
Extending a Model Controller
欢迎提问
添加回答
举报