【问题标题】:Strapi POST api for content-type with relational fields用于具有关系字段的内容类型的 Strapi POST api
【发布时间】:2023-01-26 03:49:14
【问题描述】:

每次我尝试通过 /api/orders 创建订单时,它都会给我 400(错误的请求),似乎没有关于如何使用关系字段创建记录的任何地方的正确解释,这是我发现的唯一一个接近我需要的是:

所以我应该根据关系的类型使用一个 id 或一个 id 列表,但它仍然给我 400 Bad request 并且在响应中没有任何解释。

我的订单内容类型如下所示:

User是多对一的关系,一个用户可以有多个订单,但是一个订单只能有一个用户,而products是一对多的,一个订单可以有多个产品

这是我的 API 调用的样子:

    await axios.post(
      `${baseUrl}/api/orders`,
      {
        products: [9],
        total: 320,
        user: 42
      }
    );

产品和用户 ID 正是我在数据库中拥有的,身份验证不是问题。

请帮助我理解我做错了什么以及我应该如何使用关系字段创建记录。谢谢

【问题讨论】:

  • 你能分享你发送到 /api/order 路线的数据吗?
  • 没关系,我见过。在您的问题中,您引用了 /api/order 而在您的示例代码中,您引用了 /api/orders 是否正确?
  • @nasirmustapha 是的,它应该是/api/orders,这是用户权限中显示的路线

标签: javascript api relationship strapi


【解决方案1】:

好的,显然它确实给了我一个描述问题的正确响应,只是我必须转到浏览器中的“网络”选项卡并在那里找到它,这是最愚蠢的事情,我所要做的就是:

    await axios.post(
      `${baseUrl}/api/orders`,
      {
        data: {
          products: [9],
          total: 320,
          user: 42
        }
      }
    );

【讨论】:

    【解决方案2】:

    我认为问题出在您的路线上,使用 ${baseurl}/orders 访问它应该可以正常工作。

    【讨论】:

    • 这不是答案,所有其他 api 路由都有 /api 前缀,为什么这个没有?我确定问题出在我传递的数据中的某个地方,但我似乎无法找到构建它的方法
    【解决方案3】:

    如果即使使用正确的 JSON 结构(如 here 中提到的)也无法更新引用,请检查授予引用实体的权限。

    检查是否授予更新和创建权限,如下所示:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-10
      • 1970-01-01
      • 2022-08-03
      • 2013-02-04
      相关资源
      最近更新 更多