Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

JSON-RPC 是什么鬼设计

  好像到目前为止已经用过好多次 JSON-RPC,可是每次都觉得非常累。并不是说 JSON-RPC 无法满足业务需求,而是 JSON-RPC 对于调用、返回、错误,都是使用不同的名称来定义数据,在程序中检测起来就比较麻烦。而且如何避免 result 和 error 同时产生,就规范上约束?
  调用时传一个 params,返回时传一个 result,错误时传一个 error。当程序要判断到底是什么样的消息时,就要判断某个 key 是否存在。比如 on('message', message => { switch (true) { case 'method' in message: // 调用 break; case 'result' in message: // 返回 break; case 'error' in message: // 错误 break; } });   而且这是在响应正确的前提下的判断,如果还需要判断并对同时存在的情况抛出异常,比如
if ('result' in message ^ 'error' in message) { // TODO } else { // Throw }   既然它们是必须有且只能有一个的逻辑,那显然就是有一个隐藏的 type,而且是一个枚举类型。为什非要用一堆布尔值加上强行约束来描述一个枚举值?所以我觉得直接传输一个枚举类型的 type,把 params、result、error 统一成一个 key 会更简单。
网名:
54.156.92.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^