我不确定最RESTful
+ HATEOS的实现目标是什么。
我想使用PATCH操作来更新两个对象的字段,并在它们之间建立关系,但我不相信当前的操作方式是最RESTful的操作方式。
例如,
我有一个管理书籍和作者的API。
我有一个带有图书清单的Author实体。
{
"authorId": 1,
"email": "fred@gmail.com",
"firstName": "f",
"lastName": "red",
"links": [
{
"rel": "self",
"href": "http://localhost:8080/authors/1",
},
{
"rel": "books",
"href": "http://localhost:8080/authors/1/books",
}
}
和书:
{
"bookId": 1,
"title": "REST is Hard",
"links": [
{
"rel": "self",
"href": "http://localhost:8080/books/1",
},
{
"rel": "author",
"href": "http://localhost:8080/authors/1",
}
}
以上对象是DTO。 我有一个管理关系的Spring Boot后端-这仅与实际实体对象看起来略有不同,并且我认为有点泄漏有关。
当前,API收到针对http://localhost:8080/author/1/book/1
的PATCH时,会将书和作者链接在一起
API将链接author/1
和book/1
-Spring Boot将book/1
实体添加到author/1
实体中的书籍列表中并设置author
book/1
到“ author / 1”的字段-即,这是一个(作者)对许多(书)的双向关系。
除了实现(我认为我仍然可以做一些改进,以使实现更好),通过RESTful调用形成此链接的最佳方法是什么?
REST和HATEOS足够健谈,我想避免不得不进行两次URL调用(即对author/1
进行一个PATCH,对book/1
进行另一个补丁),因此,http://localhost:8080/author/1/book/1
是否存在规范的正确“ RESTful”方式?您将如何实施?