当前位置: 首页 > news >正文

rest vs jsonrpc

REST 和 JSON-RPC 是两种常见的 API 设计风格,适用于不同场景。以下是它们的核心区别与适用建议:


‌核心区别‌

  • ‌设计哲学‌

    • ‌REST‌:面向‌资源‌,强调“一切皆资源”,通过标准 HTTP 方法(GET/POST/PUT/DELETE)操作资源,URL 表示资源路径。
    • ‌JSON-RPC‌:面向‌动作/过程‌,通过 method 字段指定要调用的函数名,更贴近本地方法调用思维。
  • ‌请求格式‌

    • ‌REST‌:
      httpCopy Code
       
      GET /api/users/123 POST /api/users Content-Type: application/json { "name": "Alice" }
    • ‌JSON-RPC‌:
      jsonCopy Code
       
      { "jsonrpc": "2.0", "method": "getUserProfile", "params": { "id": 123 }, "id": 1 }
  • ‌通信协议‌

    • ‌REST‌:严格基于 HTTP,利用 HTTP 状态码、缓存机制(如 ETag)、方法语义。
    • ‌JSON-RPC‌:可运行在 HTTP、TCP、WebSocket 等之上,通常使用 POST + JSON 体,不依赖 HTTP 方法语义。
  • ‌性能与效率‌

    • ‌JSON-RPC‌: payload 更轻,支持‌批量请求‌和‌通知‌(无响应),适合高频内部服务通信。
    • ‌REST‌:因包含完整 HTTP 头部,开销较大,但利于缓存、网关代理、监控等。
  • ‌适用场景‌

    • ‌REST 更适合‌:
      • 对外公开 API(如 Web、移动应用)
      • 资源 CRUD 操作(如用户、订单管理)
      • 需要缓存、跨平台、易调试的场景
    • ‌JSON-RPC 更适合‌:
      • 微服务间通信
      • 复杂业务动作(如“审核订单”“充值账户”)
      • 需要高性能、批量操作、事件驱动系统

‌选择建议‌

  1. ‌优先选 REST 如果‌:

    • API 面向外部开发者或公众
    • 业务以资源为中心(如博客、商品、用户)
    • 希望利用 HTTP 缓存、状态码、工具链(如 Swagger)
  2. ‌优先选 JSON-RPC 如果‌:

    • 是内部服务通信(如微服务之间)
    • 需要调用复杂业务方法(非 CRUD)
    • 要求低延迟、高吞吐、支持批量请求

💡 实际案例:Zabbix 使用 JSON-RPC 2.0 过 HTTP,但所有请求都发到同一个 URL(/api_jsonrpc.php),通过 method 字段区分功能 ‌8。这说明 REST 并非唯一选择,尤其在非标准 CRUD 场景下。


‌补充说明‌

  • ‌REST 并非必须用 JSON‌:可支持 XML、YAML 等,但 JSON 最常见 ‌10。
  • ‌JSON-RPC 可走 HTTP‌:底层常基于 HTTP,但不依赖其语义,本质是 RPC 协议 ‌8。
  • ‌混合使用可行‌:部分系统对外用 REST,对内用 JSON-RPC 或 gRPC ‌4。

如需进一步了解规范细节,可参考 JSON-RPC 2.0 官方规范

http://www.jsqmd.com/news/480721/

相关文章:

  • 聊聊全国不锈钢管生产厂哪家更值得选,高性价比品牌盘点 - myqiye
  • 2026年热门不锈钢管生产商排名,推荐稳定性高且口碑好的厂家 - 工业推荐榜
  • 如何快速处理大润发购物卡?超简单! - 团团收购物卡回收
  • Terraform运维编排之阿里云案例
  • 2026年佛山瓷砖胶精品定制一线品牌排名,高性价比产品大盘点 - mypinpai
  • 六大城市高端腕表材质养护指南:36品牌配件更换+材质损耗修复技巧 - 时光修表匠
  • Course15:视觉大模型与多模态理解
  • engine-cli:Surging微服务生态工程化利器,一键搭建高效开发环境
  • LightRAG VS GraphRAG
  • 2026靠谱非标不锈钢钣金实力厂家大揭秘,钣金加工选厂攻略,口碑好的钣金加工直销厂家推荐排行贝赛特物流发展迅速,实力雄厚 - 品牌推荐师
  • 选购四害消杀公司要注意啥,永满科技算有实力的吗 - 工业品牌热点
  • Java 面试题及答案整理(2026金三银四速成版)
  • [C++][多线程]原子操作
  • SEGGER的embOS也推出动态APP用法emApps
  • 别再瞎找了!10个AI论文软件测评:全学科适配,开题报告+毕业论文全搞定
  • 2026年全国拟上市公司股权激励服务排名,靠谱品牌推荐 - 工业设备
  • 【新能源电站运维】运维无效出工减少30%、设备寿命延长3-5年:功率预测如何重构新能源场站成本结构?
  • 专科生也能用!千笔AI,碾压级的AI论文工具
  • Prompt提示词设计工程:从原则到实战的系统性方法论(附模板与调试工具)
  • 揭开Airsim仿真自动UAV巡航无碰撞源码的神秘面纱
  • 三分钟看懂财报的方法 - 智慧园区
  • 吐血推荐! AI论文写作软件 千笔ai写作 VS PaperRed,专科生专属神器!
  • AI产品经理核心能力全景图:从需求洞察到产品落地的全链路实战手册
  • 【高精度气象】光伏运维的“清洗经济学”:精准辐照预报如何让每一块面板都在最佳时刻“吐纳”
  • 从此告别拖延 10个降AIGC平台全场景通用测评与推荐
  • 功率波动平抑:从算法到并网标准验证
  • 【高精度气象】一场暴雨影响多少赛事赞助?赛事保险正在依赖分钟级预报止损
  • 讲讲拟上市公司股票期权激励,靠谱的品牌有哪些可推荐? - mypinpai
  • 2026年全国矫平机品牌制造厂技术强排名,这些厂家值得关注 - myqiye
  • 干货来了:本科生专属降AI率平台,千笔·专业降AI率智能体 VS 锐智 AI