POST API 平台中出现多个 uri

Posted

技术标签:

【中文标题】POST API 平台中出现多个 uri【英文标题】:Multiple uri occurrences in POST API platform 【发布时间】:2021-10-10 08:55:22 【问题描述】:

目的是将订单实体和产品关联为一个订单可以有多个产品,一个产品可以属于多个订单

这是我的订单类


class Order


//..........

/**
     * @ORM\ManyToMany(targetEntity=Product::class, mappedBy="cart")
     *
     * @Groups("admin:read", "admin:write")
     */
    private $products;

//..........


   

这是我的产品类


class Product

    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     *
     * @Groups("admin:read","media_object_read")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     *
     * @Groups("admin:read", "admin:write","media_object_read")
     *
     * @Assert\NotBlank(
     *     message = "The product name should not blank"
     * )
     *
     */
    private $name;

//..........

当我尝试发布与多次相同 uri 相关的订单时,只写入一个。

这是一个例子:

burpsuite screenshoot

如您所见,我发布了 2 次 api/products/1,但在回复中只出现了一次。

你能解释一下如何处理吗?

【问题讨论】:

【参考方案1】:

如果您尝试使用产品列表创建订单,我认为最好的方法是量化产品。在您的示例中,如果您想要一个包含 2 个 product 1 的订单,您应该有类似的内容:


  "products": [
    
      "id": "/api/products/1",
      "quantity": 2
      
  ]

希望对您有所帮助!

【讨论】:

我应该在产品表上创建一个数量字段吗?

以上是关于POST API 平台中出现多个 uri的主要内容,如果未能解决你的问题,请参考以下文章

QQ互联redirect uri is illegal(100010)问题解决方法

使用 POST API 时出现多个 CORS 错误

C# - REST POST API - 错误 - 无效的 URI:Uri 字符串太长

在 Instagram 基本显示 API 中出现“应用程序限制”错误

API网关GET失败,出现 "缺少认证令牌"(但POST正常)。

API ASP.NET 5“POST”成功,但出现错误“没有路由与提供的值匹配”