首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在我的REST中用protobuf代替json是否有意义?

在我的REST中用protobuf代替json是否有意义?
EN

Stack Overflow用户
提问于 2019-07-13 13:39:39
回答 1查看 794关注 0票数 1

最近读到了关于协议缓冲区的文章。据我所知,序列化更紧凑,速度更快。

在REST中使用它会更好吗?与JSON相比,它有哪些缺点?

更新:

普罗托布夫

优势:

  1. 串行化速度
  2. 短消息大小

缺点:

  1. 讯息可读性
  2. 所需的消息规范(.proto)和代码生成
EN

回答 1

Stack Overflow用户

发布于 2022-10-08 19:14:44

在我看来,没有意义,json和protobuf被用来解决不同的问题。或者更确切地说,protobuf用于解决跨语言和跨plantform之间的数据交换。

如果在rest中使用protobuf,请求者也必须使用protobuf,否则就不能解析数据。

如果您只想更快更小,我认为FastProto(https://github.com/indunet/fastproto)是一个更好的选择,使用注释来定制二进制协议。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57023036

复制
相关文章
protolator: Protobuf <==> json
github.com/hyperledger/fabric-config/protolator 是 Hyperledger Fabric 中的一个 Go 包,用于将 Protocol Buffers(ProtoBuf)消息和 JSON 格式之间进行转换。它提供了一种方便的方式来将 Fabric 配置文件(以 ProtoBuf 格式表示)与 JSON 配置文件之间进行相互转换。这对于 Fabric 的配置管理和部署非常有用,使得用户可以轻松地在不同的配置格式之间进行切换。
孟斯特
2023/10/16
2640
protolator: Protobuf <==> json
GraphQL 可代替 REST API ?
不知不觉地「歇」了好久。一个习惯的养成只需要21天,但习惯的坚持并没有想象中那么容易。
FoamValue
2022/08/22
6800
GraphQL 可代替 REST API ?
Excel公式练习50: 在公式中用特定构造代替常量数组
导语:继续研究来自于excelxor.com的案例。建议结合本文阅读原文,会了解更多的细节,会有更大的收获。
fanjy
2020/03/17
5410
我怎么在`Object-C`中用`Swift`
如果你想编译一个应用程序并且这个应用程序包含Swift文件,Swift支持的标准库已经添加到Bundle里面。你可以随时可以在终端运行otool -L查看一个产品包含的FrameWork。这个可以显示你的产品依赖的静态库和FrameWork
君赏
2018/08/31
8520
我怎么在`Object-C`中用`Swift`
ProtoBuf试用与JSON的比较
XML、JSON 也可以用来存储此类结构化数据,但是使用ProtoBuf表示的数据能更加高效,并且将数据压缩得更小。
Xiaolei123
2019/08/13
8.1K0
在 Spring Boot REST API中使用Json Web Token
在本文中,我将展示如何进行基于 Spring Boot 的 REST API进行鉴权。保护 REST API 以避免对公共 API 进行任何不必要的调用已成为一种趋势。我们将使用一些 Spring 引导功能来实现 Spring 安全,并使用 JSON WebTokens 进行授权。
用户4235284
2023/10/14
2370
在 Spring Boot REST API中使用Json Web Token
Protobuf中如何指定json tag
在 Protocol Buffers (protobuf) 中,可以使用特定的选项来指定生成的 JSON 标签。通过在消息定义中使用 [(json_name)] 选项,可以控制生成的 JSON 字段名称。这样可以确保 Protocol Buffers 和 JSON 之间的互操作性。
孟斯特
2023/10/16
9800
Protobuf中如何指定json tag
我在项目中用实际用到的22个Vue优化技巧
代码是写给人看的附带能在机器上运行,在开发中我们经常出于性能、可读性或者系统健壮程度优化代码
用户6256742
2022/07/06
8090
我在开发微信小程序中用到的几个不错的库
昨天文章中给大家提到过,在今天的文章中,给大家分享一下,我在开发过程中用到的不错的一些微信小程序的开源库。说道做到,今天就给大家分享。 图片裁剪工具 图片裁剪工具:we-cropper ,这个开源库真
非著名程序员
2018/02/07
1.3K0
我在开发微信小程序中用到的几个不错的库
Java中用Deque接口代替Stack接口完成栈功能
​ 但今天突然发现,Java Doc里建议用Deque替代Stack接口完成栈的功能,于是我稍微研究了一下。
用户7886150
2021/04/21
1.7K0
在Go中对gRPC+ProtoBuf与Http+Json进行基准测试
服务之间通信的最简单的解决方案是使用JSON over HTTP。尽管JSON具有许多明显的优点(比如它具有很好的可读性,易于理解,且通常性能良好),但它还是有一些问题的。在局域网内的数据交互,Google的Protocal Buffer这种结构编码是比JSON更好的选择。 gRPC默认使用protobuf,它更快,因为它是二进制的且是类型安全的。我编写了一个演示项目,使用JSON over HTTP与使用gRPC API的方式进行了一次基准测试。 该库包含2个相同的API:基于Protobuf的gRP
李海彬
2018/03/28
3.1K0
在Go中对gRPC+ProtoBuf与Http+Json进行基准测试
在Go中对gRPC+ProtoBuf与Http+Json进行基准测试
服务之间通信的最简单的解决方案是使用JSON over HTTP。尽管JSON具有许多明显的优点(比如它具有很好的可读性,易于理解,且通常性能良好),但它还是有一些问题的。在局域网内的数据交互,Google的Protocal Buffer这种结构编码是比JSON更好的选择。
石瞳禅
2018/09/18
1.7K0
在Go中对gRPC+ProtoBuf与Http+Json进行基准测试
谈谈我项目中用到的RabbitMQ/RocketMQ
前两天看了看一下消息队列——RabbitMQ,从配置到使用,说说消息队列MQ的工作机制.
简单的程序员
2020/04/20
1.1K0
Rest API: Json参数格式错误时显示Json原文
一开始想寻找其他方式,当抛出异常的时候,就从HttpServletRequest读取body内容。但是做不到,因为在做Json读取的时候,InputStream已经被读取了,无法再次获取到body内容。所以只能通过自定义MessageConverter的方式。
十毛
2019/03/27
1.9K0
ProtoBuf 生成 Go 代码去掉 JSON tag omitempty
我们经常使用 PB(ProtoBuf)作为数据的交换协议,用于数据的序列化与反序列化。对于 PB 生成的 Go strutc,将其序列化为 JSON 时,比如对于数字类型,默认值为零,将不会出现在 JSON 串中。
恋喵大鲤鱼
2022/06/02
5.8K0
ProtoBuf 生成 Go 代码去掉 JSON tag omitempty
[Flutter]在Flutter中使用protobuf
不说废话,直接贴步骤 安装protoc brew install protobuf 安装dart brew tap dart-lang/dart brew install dart dart 安装好后,就有pub命令了。 安装protoc_plugin pub global activate protoc_plugin 将protoc-gen-dart添加到path 在用户根目录:.bash_profile添加 export "$PATH:$PWD/.pub-cache/bin" 安装好后,就有protoc
吴老师
2019/04/09
6.5K0
Protobuf在Cmake中的正确使用
Protobuf是google开发的一个序列化和反序列化的协议库,我们可以自己设计传递数据的格式,通过.proto文件定义我们的要传递的数据格式。例如,在深度学习中常用的ONNX交换模型就是使用.proto编写的。我们可以通过多种前端(MNN、NCNN、TVM的前端)去读取这个.onnx这个模型,但是首先你要安装protobuf。
老潘
2023/10/19
1.7K0
Protobuf在Cmake中的正确使用
同事看了我的代码惊呼:居然是这么在Unity中用单例的
首先要了解,单例模式是一种常用的软件设计模式,定义是单例对象的类只能允许一个实例存在,在许多时候整个系统只需要拥有一个全局对象,有利于协调系统整体的行为。
恬静的小魔龙
2022/08/07
8120
同事看了我的代码惊呼:居然是这么在Unity中用单例的
在Go中使用Protobuf
本教程使用proto3版本的protocol buffer语言,提供了一个基本的在Go程序中使用protocol buffer的介绍。通过创建一个简单的示例应用程序,向你展示如何
KevinYan
2019/10/13
1.4K0
点击加载更多

相似问题

对Protobuf的SpringBoot REST Json请求

120

在javascript中用json发布rest请求

21

Django REST框架在IntegerField中用'null‘代替0

20

在Corona中用JSON代替XML重命名网络请求

20

为什么我的连字符在我的javascript中用"“代替?

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文