什么是指定要返回哪些列对资源的首选方法是什么?
资源是一个名词,所以当我说,GET employees
,我可以指定查询参数,以获得一组有限的员工。但是,关于每个员工的信息是什么?如果雇员表有12列,但我想只有三个,什么是指定它们的最好方法?或者,我把它们作为不同的资源?
GET employees(all columns)
GET employees(name, age)
GET employees(id, salary)
我所看到的建议,例如(注意过分热心编辑:虚构的例子如下,请不要降价语法混淆它)
http://path/to/server/employees/?q=queryparams&cols=col1,col5,co7
但是,这似乎是混合数据与查询字符串返回。应该工作,但看起来不太优雅。
通常REST结果应包含除大型或复杂性的所有列。
GET /employees
返回员工(可能分页)的列表;GET /employees/100
返回与原始类型的所有列的雇员;GET /employees/100/photo
返回大的二进制属性photo
;在一般情况下,远程服务应该返回由于网络延迟大的物体。
根据标准JSON API可以包括与include
参数结果相关的对象:
GET /employees/100?include=manager,salary
你想用QueryMap
在Retrofit
rest
API
例如
在API服务
@GET("/employees")
Call<List<Employees>> getEmployees(
@QueryMap Map<String, String> options
);
在活动
private void getEmployees() {
Map<String, String> data = new HashMap<>();
data.put("q", "queryparams");
data.put("cols", "col1,col5,co7");
// simplified call to request the news with already initialized service
Call<List<Employees>> call = Service.getEmployees(data);
call.enqueue(…);
}
富勒更多详细信息,请访问改造文档:Retrofit-Rest