链接两个对象的PATCH的URL格式

时间:2019-06-02 22:13:12

标签: rest http hypermedia

我不确定最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/1book/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”方式?您将如何实施?

0 个答案:

没有答案