1 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊
我想知道如何將動(dòng)態(tài)/計(jì)算字段添加到 Strapi API 服務(wù)器響應(yīng)
基本上您正在尋找自定義數(shù)據(jù)響應(yīng),很可能與自定義端點(diǎn)結(jié)合使用(因?yàn)槟幌敫采w現(xiàn)有端點(diǎn))。
您可以通過(guò)擴(kuò)展現(xiàn)有的 API 來(lái)做到這一點(diǎn),讓我們分解一下:
添加自定義 API 端點(diǎn) 添加路由
B. 添加處理程序
C. 添加權(quán)限運(yùn)行一些邏輯
返回自定義響應(yīng)
(1) 要將自定義 API 端點(diǎn)添加到用戶定義的內(nèi)容類型,您需要 (a) 在以下目錄中添加路由:
./api/{content-type}/config/routes.json
像這樣(在路由數(shù)組中):
{
"method": "GET",
"path": "/teams/customData",
"handler": "team.findCustomHandler",
"config": {
"policies": []
}
}
(b) 在以下目錄中添加一個(gè)方法:
./api/{content-type}/controllers/{Content-Type}.js
像這樣:
'use strict';
module.exports = {
async findCustomHandler(ctx) {
//your logic here
}
};
您可以使用原始的find方法開(kāi)始并使用您的邏輯添加您的值(這是一個(gè)很好的例子):
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
歡迎提問(wèn)
添加回答
舉報(bào)