gpt4 book ai didi

protocol-buffers - 如何使用 protobuf 3 支持补丁休息请求

转载 作者:行者123 更新时间:2023-12-01 00:26:28 26 4
gpt4 key购买 nike

我们经常有我们只想更新资源的子集字段的用例。所以如果我们有一个资源 Person :

type Person struct {
Age int
Name string
Otherfield string
}

假设调用客户端只想更新 Age field 。通常如何设置端点来处理这个问题?

我相信这应该用 PATCH 来完成请求,仅将字段设置为有效负载的一部分,即:
{
Age: 21
}

但是,这不适用于 proto3,因为据我所知,没有空字段,只有默认值。这在默认值有效的许多情况下不起作用。

最佳答案

查看 Google 自己的 protobuf 文件(例如 here ),他们使用 FieldMask 进行部分更新。

FieldMask 对象与请求一起传递,并具有以下形式(以 JSON 格式):

{
mask: "Person.Age"
}

这允许客户端告诉服务器他们希望更新哪些字段,而无需依靠部分消息本身来解决这个问题。

我认为这给(每个!)客户端增加了不必要的复杂性,但是我们找不到任何其他方法来使用 proto3 实现部分更新。

您可以查看 FieldMask 的完整文档 here .

请注意,如果客户端不需要整个对象,它也可用于过滤掉响应。

关于protocol-buffers - 如何使用 protobuf 3 支持补丁休息请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44513653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com