1

假设我有一个照片库,有一个类似这样的数据库(Word ^_^ 中的匆忙模型):

在此处输入图像描述

我已经为它写了一个rest API。但是我对如何映射某个场景感到困惑……</p>

/api/galleries - Lists all of the categories available
/api/galleries/:categoryID – Lists all of the galleries for this category
/api/galleries/:categoryID/:galleryID – Returns all of the info for a gallery
/api/galleries/:categoryID/:galleryID/images – Returns all images for a gallery

现在,我的问题是,如果我想在一个页面上列出所有画廊和所有图像怎么办?就目前而言,我必须为每个画廊调用/api/galleries/:categoryID/:galleryID/images/ 。

您认为这样做的最佳做法是什么?也许完全删除图像资源并将图像合并到/api/galleries/:categoryID/:galleryID查询的结果中?或者也许创建一个名为“show-all”或其他东西的单独资源?即/api/galleries/:categoryID/all/show-all并返回与图像结合的信息?

4

2 回答 2

1

为什么不这样使用。

/api/galleries - Lists all of the categories available
/api/galleries/:categoryID – Lists all of the galleries for this category
/api/galleries/:categoryID/info/:galleryID – Returns all of the info for a gallery
/api/galleries/:categoryID/images/:galleryID – Returns all images for a gallery
/api/galleries/:categoryID/images – Returns all images for a all galleries
于 2013-04-10T12:11:44.370 回答
1

我绝不是该主题的专家,但对我来说,您的 api 似乎有缺陷。

怎么了

例如,这个位置在说谎。

/api/galleries - Lists all of the categories available

我希望它返回一个画廊列表。

/api/galleries/:categoryID

在这里,我希望通过画廊 ID。

我的建议

有一个更干净的api。

/api/galleries                     // get all galleries
/api/galleries?expand=images       // get all galleries with the images
/api/galleries/:id                 // get a specific gallery
/api/galleries/:id?expand=images   // get a specific gallery with the images

/api/galleries/categories          // get all galleries categories
/api/galleries/categories/:cat     // get all galleries in a category

....

通过使用参数,API 不会因为您可能拥有的各种选项而变得混乱。保持干净和简单。

这是一个关于 REST api 设计的非常好的视频的链接http://www.stormpath.com/blog/designing-rest-json-apis

我认为不需要单独的info表。gallery如果您将该信息添加到表中,它将使数据库更简单。

于 2013-04-10T12:32:15.403 回答