父文章 人人都是前端专家
方案1: graphql 把所有能力都暴露出来.
方案2: 还有一种是, 通过后台配置sql ,对应一个 serviceName+version. 把serviceName+version暴露给上游,实现数据定制化. 函数式编程的思想. 这样就不用总是重启服务器. 只要对发布加上一些单测流程即可.
GraphQL升级版,支持rpc接口获取数据 . graphql DDos防御
解决问题:
前端想取哪些字段就取哪些字段.
解决方案
接口都是声明式编程.
核心知识
1. 元数据 (哪些字段属于哪个handler, 每个handler之间的数据是1对多 还是 多对多)
2. 查询的字段是属于哪几个handler.(通过元数据反向分析出来. 没有同字段就不需要调用时声明, 前期框架可以没有这个能力)
3. 查询字段筛选度有多少. 先查哪个字段? limit ,orderBy 多表怎么支持? (这些都可以通过接口本身携带的元信息固化,这几个接口就不是不支持orderBy, 这些接口只支持单表的orderBy, 不然就要使用内存 stream来实现)
附录:
在服务端API开发中,很多时候定义一个接口返回的数据相对固定的,如果想要获取更多的信息,或者仅需要某个接口的某个信息的时候,基于restful API的接口就显得不那么灵活了,对于这些需求,服务端要么再定义一个新的接口,返回合适的数据,要么客户端就得通过一个庞大的接口来获取一小部分信息,GraphQL的出现就是为了解决这些问题的
作者:一字马胡
链接:https://www.jianshu.com/p/203dd28eac4f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。