比如说我有一个医生表,病人表,医生病人关系表,
web想展示所有医生的信息以及每个医生对应的病人(多对多的关系)的名字。
这样的话,是不是要
先请求所有医生资源
然后发送根据每个医生的id查找关系表的请求获得病人的id
再根据id发送查找病人名字的请求
这样的话前端就要发送1+n+n个请求。
比如说我有一个医生表,病人表,医生病人关系表,
web想展示所有医生的信息以及每个医生对应的病人(多对多的关系)的名字。
这样的话,是不是要
先请求所有医生资源
然后发送根据每个医生的id查找关系表的请求获得病人的id
再根据id发送查找病人名字的请求
这样的话前端就要发送1+n+n个请求。
REST API 只是对外暴露服务,逻辑应该在业务层实现。
class Doctor{
private Integer id;
private String name;
private List<Patient> patients;
....
}
业务层获取List<Doctor>,序列化为JSON或者XML,
前端发送一次HTTP请求,调用该REST API,从而获取这个JSON或者XML
这个业务认真想想,还是非常的复杂。
从楼主的提问出发。
其实这个问题可以理解为:“病人们的医生是谁?!”,也可以理解为,“医生们的病人们”(指的是数据库已有的数据,不区分“已处理”和“正在处理”等这些状态)
怎么去实现这个业务呢?
基于上面思路出发,REST API的路径就是这样 “/doctors/patients”(小学英文)
从数据库查询出所有的医生,再根据医生和病人的关系表获取每个医生下面的所有病人。
我会拼装成一个这样的JSON数据
{
datas:[
{
"docName":"医生名称",
"patients":[
{"patientName":"病人名称"},{...},{}
]
},
....
]
}
15 回答8.2k 阅读
8 回答6k 阅读
5 回答3.3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
http请求代价很高,应该在业务层api接口中实现中查询组装好后一次返回。