首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当有多个查询需要服务时,Restful用于查询

当有多个查询需要服务时,Restful用于查询
EN

Stack Overflow用户
提问于 2016-12-22 02:17:38
回答 1查看 83关注 0票数 0

对于用户,我有类似的结构,如下所示。

代码语言:javascript
复制
{ 
     "id": 112121
     "name": "Strange",
     "age": 27,
     "type": "Manager"
     "email" : "strage@gamil.com",
     "items" : [
         {
            "id": "1001",
            "name": "laptop",
            "details": [
                {
                  "attributeKey": "ManifaturedYear",
                  "attributeValue" : "2010"
                },
                {
                  "attributeKey": "EligibaleToDsipose",
                  "attributeValue" : "2018"
                }
             ]
         },
         {
            "id": "1002",
            "name": "phone",
            "details": [
                {
                  "attributeKey": "ManifaturedYear",
                  "attributeValue" : "2010"
                },
                {
                  "attributeKey": "EligibaleToDsipose",
                  "attributeValue" : "2018"
                }
             ]
         }  


      ]
}

我提供了一个restful URI来操作这个资源。并具有如下URLS

创建

代码语言:javascript
复制
 POST api/users
 POST api/users/{id}/items e.g. api/user/12121/items
 POST api/users/{id}/items/{id}/details e.g. api/user/23223/items/222/details

更新/删除

代码语言:javascript
复制
 [ PUT | DELETE ] api/users/{id}
 [ PUT | DELETE ] api/users/{id}/items/{id}
 [ PUT | DELETE ] api/users/{id}/items/{id}/details/{attributeKey}

我的问题是我如何支持Get请求

  1. 得到经理拥有的物品?A、B或C

A.获取api/user/type/{type}/items,例如获取api/user/type/Manager/ e.g. B.获取api/user/{type}/items,例如GET api/user/Manager/items#与id冲突 C.获取api/用户/项?type=Manager

  1. 如何获取具有电子邮件地址abc@gmail.com的用户项

A.获取api/users/电子邮件/abc@gamil.com/abc B.获取api/用户/项目?userEmail=abc@gmail.com

  1. 如何获取30岁以上用户的项目?

对于设计我的rest URI有什么好的参考吗?

EN

回答 1

Stack Overflow用户

发布于 2016-12-22 15:19:08

我的建议是,如果可能的话,将项目细分为顶级资源。/users/{id}仍将拥有该用户拥有的一组项。根据您的需要,您可能只将它们嵌入到用户响应中,而不是作为完整的表示形式嵌入它们。/items将是所有项的规范集合。这将为你提供以下资源:

代码语言:javascript
复制
/users
/users/{id}
/users/{id}/items

/items

如果你这样做,那么:

1:GET /items?ownerType=Manager

2:GET /items?ownerEmail=abc@example.com (项的集合)-或- GET /users?email=abc@example.com (一个用户的集合)

3:GET /items?ownerOlderThan=30

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41274853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档