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)问题解决方法
C# - REST POST API - 错误 - 无效的 URI:Uri 字符串太长
在 Instagram 基本显示 API 中出现“应用程序限制”错误