GraphQL
- 对API中的数据提供了一套易于理解的完整描述;
- 客户端可以准确的获取所需数据,所需结构,前端可定制性较强,所需数据基本可以自己组织;
- 获取的数据没有冗余,后端也会有相应得性能优化(不获取的字段,不会执行后端相应得解析函数);
- API容易演进,提供不同版本的数据;
- 一个请求获取多个资源,降低HTTP请求数量;
- 容易提供强大的开发工具;
- 以模块为单位进行数据组织;(如何划分是个难点)
restful api
目前我们项目存在的问题:
- 字段没有中文描述,不常见字段不知道对应的是什么;
- 不同人开发的、不同接口中,同一内容,命名不同,比如 【房号】有的人(接口)中为roomNum,有的为roomNo;
- 有的接口返回的数据并不利于前端展示,前端需要做转换;
- 接口是哪位后端开发的并不知道、是否开发完成也不知道;
- 日期相关参数,格式不统一;
- swagger 文档中接口越来越多,查找有些困难;
- 很多数据存在无意义前缀,比如roomType : {roomTypeId, roomTypeName, …},这里直接写成:roomType:{id, name, …},使用时,一般形式为:roomType.id, roomType.name,没个字段就不必添加前缀,显得冗余;