Skip to content

BF支持自定义SQL示例

目标

  • 在BFF中使用自定义SQL

前提条件

  • 自定义sql已进行配置

使用示例

JS脚本示例

JavaScript
  /**
   * 前置校验函数入口, 可用于入参校验、改写等逻辑
   * @param {Object} params - 输入数据(接口请求入参)
   * @param {Object} context - 运行时上下文
   * @returns - 处理后的结果,必须返回
   */
    export default async function beforeFilter(params, context) {
      const result = await context.client.sql.execute(params);
      params.sqlResult = result;
      return params;
  }

sqlCode: 8cbdd953-8d5fa8e5对应的sql:

Shell
SELECT * FROM employee where store_id = #{storeId} limit 20;

执行请求

Shell
curl --location 'https://daily-runtime.lovrabet.com/api/endpoint/app-8cbdd953/beforeFilter' \
--header 'Cookie: yt-daily.session_token=dwBGMe6X9WMFKdXLeMG6XPklwJkn53eR.a0waMwBkSyNi0PtZtzNQPf%2F8gKJLUjHAgqVUlPfkqVc%3D;' \
--header 'Content-Type: application/json' \
--data '{
    "sqlCode":"8cbdd953-8d5fa8e5",
    "params": {
        "storeId": 1
    }
}'

响应体:

JSON
{
    "success": true,
    "msg": "",
    "errorMsg": "",
    "errorCode": "0000",
    "data": {
        "sqlCode": "8cbdd953-8d5fa8e5",
        "params": {
            "storeId": 1
        },
        "sqlResult": [
            {
                "store_id": 1,
                "gmt_create": "2019-05-21T14:26:02.000+00:00",
                "salt": "aM8TOk10sy",
                "gender": 39,
                "id_card": "gViXgeBMUI",
                "employee_name": "李四",
                "hire_date": "2010-06-22",
                "gmt_modified": "2025-07-26T08:31:46.000+00:00",
                "password": "dVwDNHAftU",
                "phone": "52-863-1021",
                "role_id": 369,
                "employee_id": 12,
                "position": "eMuursN2Dj",
                "username": "Xiao Anqi",
                "status": 12
            },
            {
                "store_id": 1,
                "gmt_create": "2020-04-20T11:34:25.000+00:00",
                "salt": "tJKr80FyUi",
                "gender": 33,
                "id_card": "WTzNoesJmJ",
                "employee_name": "王五123",
                "hire_date": "2020-10-20",
                "gmt_modified": "2025-07-26T08:31:52.000+00:00",
                "password": "YKTaOfu8CZ",
                "phone": "760-5716-4828",
                "role_id": 342,
                "employee_id": 13,
                "position": "u5mmDTTaHT",
                "username": "Mao Yuning",
                "status": 97
            },
            {
                "store_id": 1,
                "gmt_create": "2000-07-17T17:06:33.000+00:00",
                "salt": "7p6bM2JyOZ",
                "gender": 16,
                "id_card": "gFwwmSqRoE",
                "employee_name": "成龙",
                "hire_date": "2024-03-07",
                "gmt_modified": "2025-07-26T08:31:56.000+00:00",
                "password": "WnHF6nL04D",
                "phone": "7649 900953",
                "role_id": 453,
                "employee_id": 14,
                "position": "c3EnJiFITy",
                "username": "Liu Jialun",
                "status": 17
            },
            {
                "store_id": 1,
                "gmt_create": "2004-12-08T16:14:45.000+00:00",
                "salt": "uf2my7lbKK",
                "gender": 57,
                "id_card": "047H5ubYFu",
                "employee_name": "张三-卫玄测试",
                "hire_date": "2004-10-07",
                "gmt_modified": "2025-07-26T08:31:42.000+00:00",
                "password": "jLNFjcuETk",
                "phone": "74-35-9610",
                "role_id": 997,
                "employee_id": 31,
                "position": "C07A9sBvPi",
                "username": "卫玄测试",
                "status": 3
            }
        ]
    },
    "params": null
}

基于飞书知识库同步生成,内容以飞书源文档为准