RPC 与 REST 有什么优劣
Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 63
Author 回答者: shfshanyue
TODO
Author 回答者: grace-shi
rest的劣势可太多了。。
- 路由冲突,这个非常常见,尤其在层级很深的情况
- utils类的路由命名没有规范
- crud resource,但是批量的接口 没有路由规范,批量创建,删除,或者批量关联。
- 有时候资源之间的关系很难界定,写路由的时候很难清楚的表达两者的关系。
rpc不太了解,直接调用方法?
- 能想到的是 调用起来还是比rest麻烦的,
- 没有行业规范,命名之类的
- 文档可能比rest更麻烦一点,跟实现的语言有关,rest可以说是语言无关的。
两者场景 rest适合暴露给外部,作为外部的服务。
rpc更适合企业内部服务之间的调用。
Author 回答者: ansonlovecoding
REST: 优势:编写简单,易于外部调用,浏览器支持,基于文本的响应可读性强,灵活性强 劣势:文本传输性能较差,不像RPC那样在使用上有严格的标准,所以不同人使用上差异化比较大
RPC: 优势:基于二进制协议的传输,性能比REST好,使用上有严格的标准以及强类型限制使可靠性增强,请求和响应必需借用相关的RPC库,这一特性天然适用于内部服务的的请求,安全性较强 劣势:使用上比REST复杂,需提前定义好请求和响应的结构,传输的数据由于是二进制必须进行序列化才可阅读
总体来说外部请求采用REST更为简单和兼容性强,内部请求采用RPC性能更强,可靠性高,更安全。