按照通信协议、交互风格、数据格式、调用模式划分,开发中最常用的几类:
1. REST API(RESTful)
目前互联网最主流
协议:HTTP/HTTPS
核心:用 HTTP 动词表达语义
GET查询、POST创建、PUT全量更新、PATCH部分更新、DELETE删除
数据格式:JSON为主,也支持 XML
特点:资源为中心,无状态,简单易调试;浏览器、Postman 直接调用
示例:
GET /user/100
POST /user
PUT /user/100
DELETE /user/100
适用:Web 后端、小程序、App 后端接口

2. RPC 接口(远程过程调用)
像调用本地函数一样调用远程服务,服务内部调用首选 代表实现:gRPC、Dubbo、Thrift
gRPC(Google)
协议:HTTP/2,序列化:Protobuf
特点:二进制序列化,性能高,支持流式、双向流;强类型,代码生成
适用:微服务内部服务之间调用
Dubbo(阿里)
默认自定义 TCP 协议,也支持 HTTP;Java 生态微服务
多用于 Java 微服务内网通信
Thrift:Apache,跨语言 RPC
RPC 侧重方法调用;REST 侧重资源操作。
3. SOAP API
协议:HTTP,消息格式 XML
全称:简单对象访问协议,配套 WSDL 描述接口文档
特点:重型、规范严谨,支持事务、安全标准 WS‑Security
适用:老系统、银行、政务遗留系统;现在新项目很少用
4. GraphQL
HTTP 传输,不是 REST,是查询语言
客户端自己指定需要哪些字段,服务端返回对应数据
优点:一次请求拿多份数据,避免多次请求、避免返回多余字段
缺点:服务端需要做复杂度控制,防止恶意查询;缓存比 REST 麻烦
代表:Github、很多 B 端项目
5. WebSocket API
长连接,双向实时通信
HTTP 握手后升级为 ws/wss 协议;不再是一问一答,服务端可以主动推送消息
适用:聊天、消息推送、实时大屏、股票、在线协同
格式:JSON / 二进制都可以

6. WebHook(回调接口)
事件驱动回调,不属于通信协议,是接口使用模式
A 系统发生事件,主动 POST 请求调用 B 提供的 API 地址推送数据
例如:支付回调、Git 代码提交回调、消息通知
一般是 HTTP POST+JSON
7. SSE (Server‑Sent Events) 服务器推送事件
基于普通 HTTP,单向长连接:只能服务端向客户端推送,客户端不能发消息
文本流格式,比 WebSocket 轻量;适合日志推送、实时通知
对比:WebSocket 双向;SSE 单向
8. 文件上传接口
属于 HTTP 接口特殊场景
multipart/form‑data:表单文件上传binary 二进制流上传
快速对比总结表
补充小知识点
按调用者区分:开放 API(对外)、内部 API(微服务内网)
现在主流技术选型:
对外给前端 / App:REST / GraphQL
微服务内部:gRPC / Dubbo
实时:WebSocket
事件通知:WebHook
本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。
原文链接
欢迎访问 小易撩挨踢