REST API并渴望加载休息的资源

rec*_*rus 5 rest

想象一下诸如作者之类的资源。作者有多本书,多张图片等。

在我的应用程序的某些页面中,我只需要表面作者数据(例如名称)。在其他页面中,我也需要所有嵌套的资源。如何处理嵌套资源的加载?

  1. 我是否在一次调用中加载所有内容,以便:
    GET / authors返回{名称:x,书籍:{书籍名称:a,...}}

  2. 接受一个指定嵌套对象的可选参数,例如:
    GET / authors?include = books&pictures

  3. 仅返回表面作者数据,然后在后续调用中获取相关资源。但是,这可能会导致n + 1个类型的查询,例如:
    GET / authors
    GET / author / 1 / images
    GET / author / 1 / books

任何见解表示赞赏

ial*_*eev 1

我会使用以下 REST 风格的 URL:

GET /authors - 获取所有作者的列表

GET /authors/{authorId} - 一次请求中有关具体作者的基本信息

GET /authors/{authorId}/detailed - 一次请求中有关具体作者的详细信息

此外,您可以使用以下方法来提取有关作者的特定信息:

GET /authors/{authorId}/images - 按作者获取所有图像

GET /authors/{authorId}/images/{imageId} - 按作者获取一张图像

GET /authors/{authorId}/books - 按作者获取所有书籍

GET /authors/{authorId}/books/{bookId} - 按作者获取一本书

我还建议阅读此处的REST 资源命名约定。