到多对多关系的API路由

时间:2017-11-29 12:25:50

标签: php laravel rest api

我有一个相关的REST API问题。

我有2个实体ProductStore,它们之间有many-to-many个关系。 {0}可以提供ProductStoreStoreProduct可能有0个或更多Product个。

但我需要一条路线向Store添加Product,还需要从Store中删除"hapi": "^16.6.2", "hapi-swagger": "^8.0.0", "inert": "^4.2.1", "vision": "^4.1.1", 的路线。关系很简单,数据透视表中没有额外的列。

您会使用哪种方法?

3 个答案:

答案 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,因为这两项操作实际上都没有创建产品或商店。