当我想要删除资源和子资源或者仅仅删除资源时,如何正确地使RESTAPI端点?
在我的系统中,我有两个资源当我想要删除资源和子资源或者仅仅删除资源时,如何正确地使RESTAPI端点?,rest,Rest,在我的系统中,我有两个资源包和债务,包可以包含多个债务。现在,我准备删除包的api资源,但我需要有两个可用选项: 删除包和相关的债务-执行此操作后,删除的资源将在系统中不可见 在这里,我正在考虑简单的router.delete('/packages/:token') 删除文件包但取消绑定相关的债务-执行此操作后,文件包将被删除,但债务将被更新为与已删除文件包的松散连接,并且债务将在系统中用于其他操作 在这里我遇到了一个问题,我想创建post端点,并在路径中执行操作,类似于,router.
包
和债务
,包
可以包含多个债务
。现在,我准备删除包的api
资源,但我需要有两个可用选项:
- 删除
和相关的包
-执行此操作后,删除的资源将在系统中不可见债务
router.delete('/packages/:token')
- 删除
但取消绑定相关的文件包
-执行此操作后,债务
将被删除,但文件包
将被更新为与已删除文件包的松散连接,并且债务
将在系统中用于其他操作债务
post
端点,并在路径中执行操作,类似于,router.post('/packages/:token/remove/unpin')
。但它可能不是最好的RESTAPI
我希望,这是清楚的。感谢您提供的帮助/建议。因此,在阅读了这篇漂亮的文章之后,我决定创建类似于
路由器的端点。delete('/packages/:token/unpin')
,这将告诉我需要删除包,但unpin
操作将提示我在删除包之前需要取消绑定债务
在提到我的问题的帖子中有一个很好的部分:
那些不适合CRUD操作世界的操作呢?
这就是事情变得模糊的地方。有许多方法:
PUT/gists/:id/star
启动gist,使用DELETE/gists/:id/star
取消启动gist/search
最有意义,即使它不是资源。这没关系——只要从API使用者的角度做正确的事情,并确保清楚地记录下来,以避免混淆因此,在阅读了这篇漂亮的文章之后,我决定创建这样的端点
router.delete('/packages/:token/unpin')
,这将告诉我需要删除包,但unpin
操作将提示我需要在删除包之前取消绑定债务
在提到我的问题的帖子中有一个很好的部分:
那些不适合CRUD操作世界的操作呢?
这就是事情变得模糊的地方。有许多方法:
PUT/gists/:id/star
启动gist,使用DELETE/gists/:id/star
取消启动gist/search
最有意义,即使它不是资源。这没关系——只要从API使用者的角度做正确的事情,并确保清楚地记录下来,以避免混淆