内容简介:RPC=remote procedure call,执行远程服务器上的一个function,举例:服务端定义了三个函数:
RPC
RPC=remote procedure call,执行远程服务器上的一个function,举例:
服务端定义了三个函数:
客户端发起请求
RPC在一些大公司中依然被使用。
RPC的优点有:
- 设计简洁,便于理解
- 轻量的payload
- 很高的性能表现
缺点有:
- 前后端代码高耦合
- 代码可读性不好,相关代码不容易被定位
- 会导致有大量被定义的函数,难以管理
REST
REST = Representational state transfer,直接翻译就是『表现层状态转移』
优点:
- 前后端高度解耦
- 便于理解,即使没有看文档,也能大概知道接口是用来做什么的;
- 接口的功能有单一性,便于扩展和复用;
- 利用了HTTP原本的特性
缺点:
- 有时payload会变的特别大
- 同一个页面可能要调用很多个API,来获取不同的东西,在网络差的情况下会降低体验
举例:
GraphQL
GraphQL = Graph query language
吸取了RPC和REST的一些共同优点;以查询为基本单元,方便获取到想要的数据,举例:
接口定义
接口调用
优点:
- 低网络速度下表现优异
- 声明式地数据获取
- 根据UI需求获取合适的数据,避免不必要的数据传输
缺点:
- 定义起来相对复杂
- 缓存问题,需要一个更加健全的机制中来确保字段级别的缓存
- 版本持续更新中,还不太成熟
综合对比与总结
API设计也不会有银弹。
设计API时,决定使用哪种形式,得先考虑所设计的API将会被谁使用:
- 如果是关注于对象和资源的项目,需要对接各种不同的端和使用者,需要便于使用和阅读文档,那么适合使用REST
- 如果是面向行为动作,或者内部的一些微服务,对响应要求高,那么可以考虑RPC
- 如果是需要给UI提供数据,或者需要对弱网络环境下优化而减少请求,那么可以考虑GraphQL
参考来源
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- JavaScript 各异步方式比较
- C#比较两个集合的更有效方式
- 【前端词典】4 种滚动吸顶实现方式的比较
- React与Vue模板使用比较(一、vue模板与React JSX比较)
- 从全方位为你比较3种数据科学工具的比较:Python、R和SAS(附链接)
- F#序列比较
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Programming Collective Intelligence
Toby Segaran / O'Reilly Media / 2007-8-26 / USD 39.99
Want to tap the power behind search rankings, product recommendations, social bookmarking, and online matchmaking? This fascinating book demonstrates how you can build Web 2.0 applications to mine the......一起来看看 《Programming Collective Intelligence》 这本书的介绍吧!