RESTful多个资源关联时,应如何返回数据?


比如想获取XX公司XX部门XX用户的地址,设计的URL可能会是这样:


 GET: /companies/${id}/departments/${id}/users/${id}/address

json方式的返回结果应该如何组织呢?

一些人不清楚问的是什么意思,我再多描述些。

比如返回结果可以是:


 {
    "code": 200,
    "message": "xxx",
    "results": [
        {
            "xxx": "xxx"    // address的信息列表
        }
    ]
}

因为是多个资源进行关联,有些对于results也可能会这样返回:


 {
     "company": {
          "xxx": "xxx",    // company的信息列表
          "department": {
              "xxx": "xxx"    // department的信息列表
              "address": {    // 最后是address的信息列表
                  "xxx": "xxx"
              }
          }
     }
}

还有使用Hypermedia API的设计方式(HATEOAS),也就是说对于company,他不返回${id}对应的信息,而是返回一个链接。(对于HATEOAS,我也是比较迷糊的状态)

所以...对于多个资源关联查询,结果应该以何种json结构返回呢?

python ruby java php restful

里昂马格纳斯 9 years, 1 month ago

 'address'

我还没死透 answered 9 years, 1 month ago

不是很清楚在问什么
返回的json格式吗?
前端需要什么数据就返回什么数据呗
如果只需要用到地址
就直接返回 {"address": address}
如果前端跟后端有约定返回格式,就按格式返回就好了
例如


 json


 {
    "status": STATUS, //可能为请求状态码,表示请求成功与否
    "data": {
        "address": address,//主要获取的信息
        "other": other//其他可能需要的信息
    }
}

蛋疼D別扭控 answered 9 years, 1 month ago

ls为毛会-1,说的有啥问题没
你的最终目的是get地址,响应把获取的地址返回给客户端不就可以了吗,怎么会需要在意请求的url?

永远的僚机 answered 9 years, 1 month ago

Your Answer