REST API返回项目和项目类别列表

时间:2015-08-10 13:54:27

标签: ruby-on-rails api rest

我正在构建一个REST API,为移动应用程序提供数据。

数据结构是一种非常常见的情况:

  • 两个级别的分类(子类别不能有子类别)
  • 可以分配到类别或子类别的项目

应用程序的用例也很常见:

  1. 查看所有项目
  2. 从列表中选择一个类别并在其中显示项目
  3. 选择一个类别,然后选择子类别并在其中显示项目
  4. 在所有用例中,应用程序必须从API检索现有类别(和子类别)列表以及项目列表。

    对于API,我能想到的最RESTful设计是以下端点:

    /categories => list of categories
    /categories/id/categories => subcategories of a category
    /items => list of all items 
    /items/id => detail of an item
    /items/category_id=id => list of items in a category
    

    通过此设置,每次页面显示时,应用程序都需要向API发出两次2次请求:

    • 获取类别列表的一个请求(填充过滤器)
    • 获取属于所选类别(如果有)的列表项的另一个请求

    如果我“破坏”RESTful关注以使端点

    ,那会不会很糟糕
    /items
    /items/category_id=id
    

    包括要显示的项目和项目所属的类别?

    { items: [....], categories: [....] }
    

0 个答案:

没有答案