在nestjs Restful api中,处理资源之间关系的常见(也是好的)方法是什么。 我的项目几乎遵循这个结构,唯一的区别是我使用存储库而不是实体。
以
Cat
存储库为例(来自 nestjs 文档),我可以有另一个 Food
存储库。这不是猫的专属,它包含各种食物,但也包含一些猫粮。
如果我想获取与我的
type
猫相关的食物,采用restful api要求,我的端点将是:
/cat/:type/foods
这看起来很清楚,我喜欢它。
这个端点的位置在哪里? 在
Cat
控制器内部似乎是正确的位置,但我对此不确定。
我尝试遵循一个干净的架构,每个功能都彼此隔离,所以这似乎是错误的(?)。
为了避免这种情况,我可以将其添加到
food
内,但在这种情况下,常见的方法是这样做:
foods?catType=type
这似乎不太清楚,我个人不喜欢它。 有一个屏幕截图显示了我在获取所有商店中的挣扎:
那么,实现这一目标的好方法是什么?
资源使用:
在我看来,因为这是多对多的关系。
您应该创建一个不同的端点,称为 CatsFood(它的模块、控制器、服务等)
/catsfood?catType=a,food=b