RPC 、REST、GraphQL三种API设计方式的简介和比较

栏目: 服务器 · 发布时间: 6年前

内容简介:RPC=remote procedure call,执行远程服务器上的一个function,举例:服务端定义了三个函数:

RPC 、REST、GraphQL三种API设计方式的简介和比较

RPC

RPC=remote procedure call,执行远程服务器上的一个function,举例:

服务端定义了三个函数:

RPC 、REST、GraphQL三种API设计方式的简介和比较

客户端发起请求

RPC 、REST、GraphQL三种API设计方式的简介和比较

RPC在一些大公司中依然被使用。

RPC的优点有:

  • 设计简洁,便于理解
  • 轻量的payload
  • 很高的性能表现

缺点有:

  • 前后端代码高耦合
  • 代码可读性不好,相关代码不容易被定位
  • 会导致有大量被定义的函数,难以管理

REST

REST = Representational state transfer,直接翻译就是『表现层状态转移』

优点:

  • 前后端高度解耦
  • 便于理解,即使没有看文档,也能大概知道接口是用来做什么的;
  • 接口的功能有单一性,便于扩展和复用;
  • 利用了HTTP原本的特性

缺点:

  • 有时payload会变的特别大
  • 同一个页面可能要调用很多个API,来获取不同的东西,在网络差的情况下会降低体验

举例:

RPC 、REST、GraphQL三种API设计方式的简介和比较

GraphQL

GraphQL = Graph query language

吸取了RPC和REST的一些共同优点;以查询为基本单元,方便获取到想要的数据,举例:

接口定义

RPC 、REST、GraphQL三种API设计方式的简介和比较

接口调用

RPC 、REST、GraphQL三种API设计方式的简介和比较

优点:

  • 低网络速度下表现优异
  • 声明式地数据获取
  • 根据UI需求获取合适的数据,避免不必要的数据传输

缺点:

  • 定义起来相对复杂
  • 缓存问题,需要一个更加健全的机制中来确保字段级别的缓存
  • 版本持续更新中,还不太成熟

综合对比与总结

API设计也不会有银弹。

设计API时,决定使用哪种形式,得先考虑所设计的API将会被谁使用:

  • 如果是关注于对象和资源的项目,需要对接各种不同的端和使用者,需要便于使用和阅读文档,那么适合使用REST
  • 如果是面向行为动作,或者内部的一些微服务,对响应要求高,那么可以考虑RPC
  • 如果是需要给UI提供数据,或者需要对弱网络环境下优化而减少请求,那么可以考虑GraphQL

RPC 、REST、GraphQL三种API设计方式的简介和比较

参考来源

https://www.youtube.com/watch...


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版)

程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版)

左程云 / 电子工业出版社 / 109.00元

《程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版)》是一本程序员代码面试"神书”!书中对IT名企代码面试各类题目的最优解进行了总结,并提供了相关代码实现。针对当前程序员面试缺乏权威题目汇总这一痛点,本书选取将近300道真实出现过的经典代码面试题,帮助广大程序员的面试准备做到接近万无一失。"刷”完本书后,你就是"题王”!《程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版)》......一起来看看 《程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版)》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

SHA 加密
SHA 加密

SHA 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具