InfoQ 推荐 ( ) • 2021-10-15 12:25
}消费者可以为希望在响应中接收的字段设置路径,如果消费者只对产品标题和格式感兴趣,他们可以设置路径为“title”和“format”的FieldMask:FieldMask fieldMask = FieldMask.newBuilder()。
在生产者(服务器)端使用FieldMask在生产者(服务器)端,可以使用FieldMaskUtil.merge()[10]方法从响应负载中删除不必要的字段(第8、9行):@Override。
References:[1] https://netflixtechblog.com/practical-api-design-at-netflix-part-1-using-protobuf-fieldmask-35cfdc606518"[2] https://grpc.io/"[3] https://jsonapi.org/format/#fetching-sparse-fieldsets"[4] https://netflixtechblog.com/netflix-studio-engineering-overview-ed60afcfa0ce"[5] https://developers.google.com/protocol-buffers/docs/reference/csharp/class/google/protobuf/well-known-types/field-mask"[6] https://developers.google.com/protocol-buffers"[7] https://en.wikipedia.org/wiki/Filmmaking"[8] https://en.wikipedia.org/wiki/Variable-length_quantity#Zigzag_encoding"[9] https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/util/FieldMaskUtil.html#fromFieldNumbers-java.lang.Class-int...-"[10] https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/util/FieldMaskUtil.html#merge-com.google.protobuf.FieldMask-com.google.protobuf.Message-com.google.protobuf.Message.Builder-"[11] https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/Descriptors"[12] https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/Descriptors.FieldDescriptor.html"[13] https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/util/FieldMaskUtil.html#normalize-com.google.protobuf.FieldMask-"[14] https://google.aip.dev/161"你好,我是俞凡,在Motorola做过研发,现在在Mavenir做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习 ... 阅读全文