AIP-161 域掩碼

編號161
原文鏈接AIP-161: Field masks
狀態批準
創建日期2021-03-01
更新日期2021-03-01

在(使用AIP-134的Update或類似方法)更新資源時,通常需要明確指定哪些域需要更新。服務可以忽略另外的域,即使用戶發送了值。

定義一種掩碼格式,為每個API處理更具體需求的方案雖然吸引人。但考慮到掩碼需求不斷變化,明智的做法是使用一種結構化語法,可以透明地進行更新,無需等待界面或客戶端升級。

指南

域名字的掩碼稱為“域掩碼”。表示域掩碼的域?必須?使用?google.protobuf.FieldMask?類型。域掩碼在Update請求(AIP-134)中很常見。

域掩碼?必須?始終相對于資源:

警告?將讀掩碼作為請求消息中獨立域(如?google.protobuf.FieldMask read_mask?)的方案?已廢棄?。

message UpdateBookRequest {// The book to update.//// The book's `name` field is used to identify the book to update.// Format: publishers/{publisher}/books/{book}Book book = 1 [(google.api.field_behavior) = REQUIRED];// The list of fields to update.// Fields are specified relative to the book// (e.g. `title`, `rating`; *not* `book.title` or `book.rating`).google.protobuf.FieldMask update_mask = 2;
}

讀寫一致性

如果使用域掩碼,其讀寫行為?必須?自洽:

  • 如果用戶使用某個掩碼更新資源,然后使用相同掩碼讀取同一資源,服務?必須?返回完全相同的數據。
    • 例外:只輸出域。
  • 類似地,使用某個掩碼讀取資源,然后用收到數據和相同掩碼更新資源的請求?必須?不產生實際修改。

注意?這意味著任何對讀請求或寫請求有效的掩碼,?必須?同時對兩者都有效。

設定域掩碼

域掩碼?必須?允許使用?.?字符遍歷指定消息結構中的域。

域掩碼始終是相對于資源的,資源直接包含的域(如?title?,?rating?)不需要遍歷。遍歷用在資源包含消息的時候(如?author.given_name?)。

注意?用戶?必須?可以指定整個消息域,或消息域的子域:?author?和?author.given_name?都有效。

Map域

域掩碼?可以?支持使用?.?字符遍歷指定Map中的域,只要Map的鍵是字符串或整數。

域掩碼?應當?支持字符串鍵,處理鍵不符合域掩碼語法的情況。字符串鍵使用反引號包圍。

message Book {// The name of the book.// Format: publishers/{publisher}/books/{book}string name = 1;// Reviews for the back cover. The key is the author of the review,// and the value is the text of the review.//// Valid field masks: reviews, reviews.smith, reviews.`John Smith`map<string, string> reviews = 2;
}

通配符

域掩碼?可以?允許在重復域或Map上使用?*?字符,指示集合元素的特定子域:

message Book {option (google.api.resource) = {type: "library.googleapis.com/Book"pattern: "publishers/{publisher}/books/{book}"};// The name of the book.// Format: publishers/{publisher}/books/{book}string name = 1 [(google.api.field_behavior) = IDENTIFIER];// The author or authors of the book.// Valid field masks: authors, authors.*.given_name, authors.*.family_name// Invalid field masks: authors.0, authors.0.given_namerepeated Author authors = 2;
}

注意?域掩碼?不得?允許通過索引訪問重復域的特定元素。如果收到這種請求,?必須?返回?INVALID_ARGUMENT?錯誤。

只輸出域

如果用戶(使用通配符或指定包含只輸出域的消息)間接在更新掩碼中包含了只輸出域,服務?必須?忽略隨請求輸入的任何只輸出域,即使請求要求清理或修改它們。

如果用戶在更新掩碼中直接設定了只輸出域,服務?必須?忽略隨請求輸入的只輸出域,即使請求要求清理或修改它們,以便支持同一個域掩碼同時用于輸入和輸出。

無效的域掩碼條目

讀取數據時,域掩碼?可以?忽略指向不存在的值的條目(無論是域不存在,還是服務認定的無效Map鍵)。

寫入數據時,如果條目指向不存在的值,服務?應當?返回?INVALID_ARGUMENT?錯誤。然而服務?可以?允許刪除請求。

修訂記錄

  • 2023-10-18?更新關于更新掩碼中存在只輸出域的指南。
  • 2023-07-17?將?update_mask?指南移至AIP-134。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/71702.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/71702.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/71702.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

掌握Kubernetes Network Policy,構建安全的容器網絡

在 Kubernetes 集群中&#xff0c;默認情況下&#xff0c;所有 Pod 之間都是可以相互通信的&#xff0c;這在某些場景下可能會帶來安全隱患。為了實現更精細的網絡訪問控制&#xff0c;Kubernetes 提供了 Network Policy 機制。Network Policy 允許我們定義一組規則&#xff0c…

Flask 小冊子簡介

這是一個Flask restful講解的小冊子&#xff0c;涵蓋了 RESTful API 的概念、選擇 Flask 的原因以及小冊子的目標和結構。我會盡量寫得詳細&#xff0c;幫助你更好地理解。 1. 簡介 1.1 什么是 RESTful API&#xff1f; 1.1.1 REST 的概念 REST&#xff08;Representational…

ElementUI 級聯選擇器el-cascader啟用選擇任意一級選項,選中后關閉下拉框

1、啟用選擇任意一級選項 在 el-cascader 標簽上加上配置項&#xff1a; :props"{ checkStrictly: true }"例如&#xff1a; <el-cascaderref"selectedArrRef"v-model"selectedArr":options"optionsList":props"{ checkStri…

typedef 和 using 有什么區別?

在 C 編程中&#xff0c;類型別名&#xff08;Type Aliases&#xff09;是為已有類型定義新名稱的一種機制&#xff0c;能夠顯著提升代碼的可讀性和可維護性。C 提供了兩種工具來實現這一功能&#xff1a;傳統的 typedef 和 C11 引入的 using 關鍵字。 概念 類型別名本質上是為…

VS2022C#windows窗體應用程序調用DeepSeek API

目錄 一、創建DeepSeek API Key 二、創建窗體應用程序 三、設計窗體 1、控件拖放布局?? 2、主窗體【Form1】設計 3、多行文本框【tbContent】 4、提交按鈕【btnSubmit】 5、單行文字框 四、撰寫程序 五、完整代碼 六、運行效果 七、其它 一、創建DeepSeek API Ke…

docker 如何更新容器內的環境變量,并覆蓋創建這個容器的鏡像?

docker 如何更新容器內的環境變量&#xff0c;并覆蓋串講這個容器的鏡像&#xff1f; 之前試過在容器內unset 環境變量&#xff0c;并進行docker commit 保存&#xff0c;發現這樣是不行的&#xff0c;重新啟動容器之后還是會出現之前設置過的環境變量 了解了下&#xff0c;u…

Android Coil總結

文章目錄 Android Coil總結概述添加依賴用法基本用法占位圖變形自定義ImageLoader取消加載協程支持緩存清除緩存監聽 簡單封裝 Android Coil總結 概述 Coil 是一個用于 Android 的 Kotlin 圖像加載庫&#xff0c;旨在簡化圖像加載和顯示的過程。它基于 Kotlin 協程&#xff0…

如何在WPS中接入DeepSeek并使用OfficeAI助手(超細!成功版本)

目錄 第一步&#xff1a;下載并安裝OfficeAI助手 第二步&#xff1a;申請API Key 第三步:兩種方式導入WPS 第一種:本地大模型Ollama 第二種APIKey接入 第四步&#xff1a;探索OfficeAI的創作功能 工作進展匯報 PPT大綱設計 第五步&#xff1a;我的使用體驗(體驗建議) …

Spring Boot集成Minio筆記

一、首先配置MinIO 1、MinIO新建Bucket&#xff0c;訪問控制臺如圖 創建訪問密鑰(就是賬號和密碼) 二、集成mino添加Minio客戶端依賴 1.maven構建方式在pom.xml引入jar <dependency><groupId>io.minio</groupId><artifactId>minio</artifactI…

【開源寶藏】Spring Trace 一種輕量級的日志追蹤新方式

Spring Trace&#xff1a;一種輕量級的日志追蹤新方式 一、前言 在日常開發中&#xff0c;我們常常需要在日志中標記某個請求的唯一標識&#xff08;Trace ID&#xff09;或上下文信息&#xff0c;以便快速定位問題或查看調用鏈路。傳統做法通常會使用 MDC&#xff08;Mapped…

Web網頁開發——水果忍者

1.介紹 復刻經典小游戲——水果忍者 2.預覽 3.代碼 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&…

【Flink銀行反欺詐系統設計方案】6.用戶畫像數據與反欺詐系統的關聯思路

【Flink銀行反欺詐系統設計方案】6.用戶畫像數據與反欺詐系統的關聯思路 概要1. 用戶畫像數據與反欺詐系統的關聯思路1.1 用戶畫像數據內容1.2 數據賦能反欺詐的核心邏輯 2. 用戶畫像賦能反欺詐的3個案例2.1 案例1&#xff1a;消費習慣異常檢測2.2 案例2&#xff1a;設備/地理位…

如何在unity中完整錄制一段動畫

在動畫制作中&#xff0c;需要對接音頻部門進行音效的制作。通常需要完整且無多余幀數的動畫視頻作為時間和幀數對幀參考&#xff0c;這時候手動錄屏就會顯得不夠精確&#xff0c;這里分享一個插件錄制方法&#xff0c;可以自定義錄制起始位置&#xff0c;0幀起手完整錄制。 錄…

Jetson Orin 安裝 onnxruntime

Jetson Orin 安裝 onnxruntime onnxruntime在Jetson上安裝只需注意三件事&#xff1a; 版本&#xff01; 版本&#xff01; 還是TMD版本&#xff01; 本機環境 Jectpack : 5.1.2CUDA : 11.4cuDNN &#xff1a;8.6.0 版本說明 關于onnxruntime的版本適配不同的官方有不同的…

Manus AI : Agent 元年開啟.pdf

Manus AI : Agent 元年開啟.pdf 是由華泰證券出品的一份調研報告&#xff0c;共計23頁。報告詳細介紹了Manus AI 及 Agent&#xff0c;主要包括Manus AI 的功能、優勢、技術能力&#xff0c;Agent 的概念、架構、應用場景&#xff0c;以及 AI Agent 的類型和相關案例&#xff0…

【為什么會有 map、weakmap 類型?】

為什么會有 map、weakmap 類型? 傳統對象的局限性催生 Map?1. 鍵類型單一性?2. 有序性與迭代支持?3. 性能優化場景? 內存管理需求催生 WeakMap?1.弱引用機制?2. 私有數據存儲?3. 規避循環引用問題? 總結 傳統對象的局限性催生 Map? 1. 鍵類型單一性? 傳統對象&…

SpringSecurity認證授權完整流程

SpringSecurity認證流程&#xff1a;loadUserByUsername&#xff08;&#xff09;方法內部實現。 實現步驟&#xff1a; 構建一個自定義的service接口&#xff0c;實現SpringSecurity的UserDetailService接口。建一個service實現類&#xff0c;實現此loadUserByUsername方法。…

本地部署DeepSeek R1大數據模型知識庫

DeepSeek-V3 的綜合能力 DeepSeek-V3 在推理速度上相較歷史模型有了大幅提升。在目前大模型主流榜單中&#xff0c;DeepSeek-V3 在開源模型中位列榜首&#xff0c;與世界上最先進OpenAI 閉源模型不分伯仲。 1、下載Ollama運行大數據庫 Ollama支持 Llama 3.3, DeepSeek-R1, Phi-…

云端秘境:EC2的奇幻之旅

在一個神秘的云端世界里&#xff0c;流傳著一個傳說——只要掌握了 EC2&#xff08;Elastic Compute Cloud&#xff09; 的奧秘&#xff0c;就能召喚出強大的騎士軍團&#xff0c;在云端之上建造屬于自己的帝國。年輕的程序法師 艾倫&#xff08;Allen&#xff09;&#xff0c;…

【javaEE】多線程(基礎)

1.????前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 親愛的朋友們&#x1f44b;&#x1f44b;&#xff0c;這里是E綿綿呀????。 如果你喜歡這篇文章&#xff0c;請別吝嗇你的點贊????和收藏&#x1f4d6;&#x1f4d6;。如果你對我的…