第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在不在數(shù)據(jù)庫(kù)中添加鍵/值的情況下在 API 中包含一個(gè)字段?

如何在不在數(shù)據(jù)庫(kù)中添加鍵/值的情況下在 API 中包含一個(gè)字段?

www說(shuō) 2022-12-09 17:11:45
我正在尋找一種 Strapi API 返回鍵/值對(duì)的方法,該鍵/值對(duì)被計(jì)算并添加到服務(wù)器響應(yīng)但不從數(shù)據(jù)庫(kù)中獲?。篈polloServer我用with做了類似的事情Prisma。如果你想知道我是怎么做到的?然后這是我的設(shè)置:注意:我不是在尋找slugStrapi 中的功能,但總的來(lái)說(shuō)我想知道如何將動(dòng)態(tài)/計(jì)算字段添加到 Strapi API 服務(wù)器響應(yīng)中。文件:./src/resolvers/Team.jsconst Team = {  slug(parent) {    return parent.title.replace(/\s+/g, '-').toLowerCase();  },};export { Team as default };文件:./src/resolvers/index.jsimport { extractFragmentReplacements } from 'prisma-binding';import Query from './Query';import Mutation from './Mutation';import Team from './Team';const resolvers = {  Query,  Mutation,  // static  Team,};const fragmentReplacements = extractFragmentReplacements(resolvers);export { resolvers, fragmentReplacements };文件:./src/prisma.jsimport { Prisma } from 'prisma-binding';import { fragmentReplacements } from './resolvers/index';require('dotenv').config({ path: './.env' });const prisma = new Prisma({  typeDefs: 'src/generated/prisma.graphql',  endpoint: process.env.API_URL,  secret: process.env.PRISMA_MANAGEMENT_API_SECRET,  fragmentReplacements,});export { prisma as default };文件:./src/schema.graphqltype Team {  id: ID!  title: String!  color: String!  slug: String! // this is not in Db but taken care by `./src/resolvers/StaticTeam.js`}正如您在上面看到的,我如何獲得slug不在數(shù)據(jù)庫(kù)中的數(shù)據(jù)。我只是喜歡將計(jì)算key:val添加到我的 API 中。
查看完整描述

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),讓我們分解一下:


  1. 添加自定義 API 端點(diǎn) 添加路由
    B. 添加處理程序
    C. 添加權(quán)限

  2. 運(yùn)行一些邏輯

  3. 返回自定義響應(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)


查看完整回答
反對(duì) 回復(fù) 2022-12-09
  • 1 回答
  • 0 關(guān)注
  • 88 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)