REST API URL 结构建议

3
我有两个表,MEMBERS和BOOKS,在我的SQL中。所以我想让会员借书、续借和归还书籍。所以这些都是PATCH请求,更新书表中的特定行。但为了做到这一点,我将不得不在URL中包含动词(ISSUE、RENEW或RETURN)。
这是一个好的URL结构吗?如果不好,我该如何处理?数据库架构 这里的约束是一本书只有一本副本,一本书只有一个作者。
更新:我现在改变了我的数据库架构,并将一些属性移动到名为Transactions的不同表中。现在我可以使用POST(发行书籍/添加事务行),PATCH(更新书/编辑交易到期日)和DELETE(返回书/从交易中删除行)。所有请求的基本URL保持不变,只有方法不同。
基本URL:/api/members/{id}/books/{id}/ enter image description here

在我看来,你的API结构可以这样设计。 - undefined
API结构可以是什么样的? - undefined
2个回答

1

从正式角度来说,问题、回报和更新被称为“动词名词”,所以是可以的。无论如何,这个API结构听起来很好。

如果我是你,我会检查一下也许POST方法更适合这些操作。


我更新了我的数据库模式。问题的更新逻辑设计得好吗? - undefined
是的,对我来说看起来还不错。 - undefined

1

您应该尝试使用 PathVariable,类似下面的示例。

路径:-- /v1/members/{id}

请求体:--

{
               member name="XXX", or email
                bookname="XXXX",
                status="issue/return/renew"
                 }

那么您需要验证ID和成员名称或(ID和电子邮件)。

if(Success)
 read request and perform a/c that 
else
  throw member not found.

我更新了我的数据库模式。问题的更新逻辑设计得好吗? - undefined
如果你没问题的话,那很好,但我建议你利用spring-boot的优势,也就是使用OneToMany或ManyToMany的概念。这样将来对你来说会更容易。 - undefined
如果以上任何答案对你有帮助,请接受并赞同,这样其他人就能轻松地得到一个想法。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接