REST API URI模式,用于不同级别的资源详细信息

时间:2016-05-23 06:31:27

标签: rest api-design

我有一个资源“用户”,我们为其存储以下详细信息:

{ 
  "id": 123,
  "name": "John Doe",
  "address": {
    "line1": "411, ABC street"
    "city": "XYZ"
    "country": "ZZZ"
  }
}

我需要三个API来列出我的用户资源:

  1. 返回用户ID列表的API
  2. 用于返回带有ID和名称的用户列表的API。
  3. API返回包含所有信息的用户列表(即ID,姓名,地址等)
  4. 我应该为上述每一种使用什么URI模式?

1 个答案:

答案 0 :(得分:2)

由于所有三个请求都是针对相同的资源 ,因此这三个请求都应使用相同的网址。例如:

/users

如果客户端请求不同的表示 ,则应使用正确的HTTP标头Accept。您应该定义标识不同表示的供应商类型。例如:

要获得仅包含ID的表示:

GET /users
Accept: application/vnd.acme.users.ids+json

获取包括ID和名称的代表:

GET /users
Accept: application/vnd.acme.users.idsandnames+json

获得包括所有内容的代表:

GET /users
Accept: application/vnd.acme.users+json