将参数发送到 strapi custom api

Send parameters to strapi custom api

我需要将参数发送到在 strapi 中创建的自定义 api。

控制器category.js:

module.exports = {
  async findCustom(ctx) {
    console.log(ctx.params);
    const { userId, categoryId } = ctx.params;
    var res = await strapi.connections.default.raw(
      `SELECT
      user_id,
      category
  FROM
      categories
  WHERE
      user_id = ${userId} AND category = ${categoryId}`
    );

    return res;
  },
};

routes.json:

{
  "method": "GET",
  "path": "/categories/custom",
  "handler": "category.findCustom",
  "config": {
    "policies": []
  }
}

如何获取它发送的参数:

http://localhost:1337/categories/custom?userId=2&categoryId=1

Strapi 使用 koa - check this out.

您可以像这样将它们放入处理程序中:

async findCustom(ctx) {
  const queryObj = ctx.request.query
  //rest of method
}

根据您的要求,对象将包含:

{
  userId: '2',
  categoryId: '1'
}

------------------------在答案中添加警告-------- --------------
扩展@Daniel A. White 的合作 -
通过允许将 SQL 查询的一部分直接注入到即将成为 运行 的查询中,您实际上是在暴露自己。如果移动到 production/public - 了解 SQL 注射是必须的,请小心 .
还添加了针对 信息泄露 :
危险的建议阅读 Should sensitive data ever be passed in the query string?
Information exposure through query strings in url