19、API 开发中的部分更新、检索与自定义方法

API 开发中的部分更新、检索与自定义方法

1. 部分更新与检索

1.1 最终 API 定义

在标准的获取请求和更新请求中,我们可以使用新的 FieldMask 类型(等同于字符串数组)来定义两个新字段。以下是相关的代码示例:

abstract class ChatRoomApi {
  @get("/{id=chatRooms/*}")
  GetChatRoom(req: GetChatRoomRequest): ChatRoom;
  @patch("/{resource.id=chatRooms/*}")
  UpdateChatRoom(req: UpdateChatRoomRequest): ChatRoom;
}
type FieldMask = string[];
interface GetChatRoomRequest {
  id: string;
  fieldMask: FieldMask;
}
interface UpdateChatRoomRequest {
  resource: ChatRoom;
  fieldMask: FieldMask;
}

1.2 权衡

使用字段掩码进行部分更新和检索功能强大,但目标有限,主要是为了减少不必要的数据传输,并允许对 API 资源进行细粒度修改。不过,不能将字段掩码和部分检索视为类似 SQL 的查询工具。当 API 有大量相关数据,且需要根据不同资源之间的关系检索特定数据时,字段掩码可能不是最佳选择,GraphQL 会更合适。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值