我有一个相关的REST API问题。
我有2个实体Product
和Store
,它们之间有many-to-many
个关系。 {0}可以提供Product
个Store
个Store
,Product
可能有0个或更多Product
个。
但我需要一条路线向Store
添加Product
,还需要从Store
中删除"hapi": "^16.6.2",
"hapi-swagger": "^8.0.0",
"inert": "^4.2.1",
"vision": "^4.1.1",
的路线。关系很简单,数据透视表中没有额外的列。
您会使用哪种方法?
答案 0 :(得分:1)
如果您的产品在没有商店的情况下不能存在并且必须属于商店,那么在商店下嵌套路线是有意义的。
例如:
将新产品添加到商店
POST /api/store/:id/product/:id
从商店删除商品
DELETE /api/store/:id/product/:id
无论哪种方式,在Store下嵌套用于向/从商店添加/删除产品的API路线似乎更合乎逻辑。使用此设计,商店是主要关注点,您正在添加或删除产品。理解和遵循简单易懂。
在替代设计中,产品是主要关注点,并且您正在添加销售它的商店或删除不再销售的商店。它变得比必要的更复杂。
答案 1 :(得分:0)
您只需在产品商店方法中定义您保存的产品属于选择商店。
看看Laravel documentation
答案 2 :(得分:0)
如果您在产品公司工作,并且您正在跟踪哪些商店携带哪些产品,那么您将POST到/ api / product / {id}来添加商店。
如果您在商店公司工作,决定在哪些商店中携带哪些产品,那么您将POST到/ api / store / {id}添加产品。
请注意,我建议使用POST,因为这两项操作实际上都没有创建产品或商店。