2
我目前正在为具有三种类型的数据的应用程序创建一个API; Files
,Tags
和Persons
。这些都是常规联系的;一个File
有许多Tags
和Persons
连接到它。为多对多关系构建RESTful API
问题是,我不知道如何使用RESTful API实际连接它们。 Persons
和Tags
对于File
是必不可少的,所以它们会自动返回,而不需要任何进一步的请求。
下面是我在看现在的Files
结构的一个例子:
GET /tags
GET /tags/:id
POST /tags
PUT /tags/:id
PATCH /tags/:id
而对于Persons
:
GET /files
GET /files/:id
POST /files
PUT /files/:id
PATCH /files/:id
而对于Tags
GET /persons
GET /persons/:id
POST /persons
PUT /persons/:id
PATCH /persons/:id
由于你可以看到,它们与intentio完全一样使我的API易于记录。但问题在于,对于多对多的关系,我不知道如何将给定的Tag
或Person
链接到File
。
我正在考虑这个:
POST /files/:id/tags
DELETE /files/:id/tags/:id
但似乎有点笨重。
什么是我的情况的理想结构?
这实际上是一种很好的做法,但问题是我不确定如何取消链接单个项目。 – Forest
事实上,这种方法是不可能的,除非事先''获取'File'资源,这样你就可以获得有关它与其他资源的关联的信息。然后,即使感觉笨重,您的初始设计也更适合这种情况。 –
Damnit。我会仔细审视两者,以及我正在研究的其他一些API,然后决定什么效果最好。 – Forest