フィールド マスクを使った Google API へのアップデート リクエスト
2017年5月10日水曜日
この記事は G Suite デベロッパーアドボケート、Wesley Chun(@wescpy)による G Suite Developers Blogの記事 "Using field masks with update requests to Google APIs" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
先日、Google API に対して読み取り(GET)リクエストを呼び出す際に、フィールド マスクを使ってレスポンス ペイロードとして返されるデータ量を削減する方法を紹介しました。本日(*原文公開当時)は、フィールド マスクの別のユースケースであるアップデート リクエストについて紹介しましょう。
このシナリオでは、以前と似ているものの、少し異なる目的でフィールド マスクを利用します。この方法を使う場合、フィールド マスクはフィルターとして動作しますが、どちらかといえば、どの API フィールドをアップデートするかを制御するビットマスクのような働きになります。次の動画では、Google Sheets API と Slides API を使ったいくつかの例を挙げてアップデート フィールド マスクの使用方法について説明しています。ぜひご覧ください。
次に示すサンプル JSON ペイロードでは、(cell ディレクティブによって)セルの太字属性を true に設定するリクエストを行っています。その際のフィールド マスク(fields)は、リクエストを繰り返しているようにも見えます。
「これは冗長ではないか?」と思うかもしれません。しかし、上の例は 2 つの部分からなる点に注目してください。1)リクエストが望む変更点についてのデータを提供します。2)たとえば、1 行目のすべてのセルの userEnteredFormat/textFormat/bold 属性というような形で、フィールド マスクで何をアップデートするかを指定します。もう少し明示的に説明するために、斜体のような別のマスクを追加してみましょう。これでアップデート フィールド マスクに、太字と斜体の両方のフィールドが設定されました。
ただし、フィールド マスクに両方の要素が存在しても、アップデート データを提供しているのは太字だけです。リクエスト本体には、italic を設定するデータは指定されていません。この場合、すべてのセルがリセットされます。つまり、セルがもともと斜体になっていれば、API リクエストの完了後に斜体が解除されます。逆に、最初からセルが斜体になっていない場合は、セルはそのままになります。この機能を使うと、あるセルの範囲を元に戻したり、以前の設定をリセットしたりする機能を実現できます。その他の例や、アップデート リクエストへのフィールド マスクの活用方法については、先ほどの動画をご覧ください。
フィールド マスクを使って API ペイロードの部分的な応答を取得する方法の詳細については、こちらの動画や 2 回シリーズの 1 回目の投稿をご覧ください。両方(読み取りおよびアップデート)のユースケースに関する総合的な記事については、Google Slides API ドキュメントのガイドをご覧ください。 ぜひフィールド マスクをお楽しみください!
Posted by Eiji Kitamura - Developer Relations Team
先日、Google API に対して読み取り(GET)リクエストを呼び出す際に、フィールド マスクを使ってレスポンス ペイロードとして返されるデータ量を削減する方法を紹介しました。本日(*原文公開当時)は、フィールド マスクの別のユースケースであるアップデート リクエストについて紹介しましょう。
このシナリオでは、以前と似ているものの、少し異なる目的でフィールド マスクを利用します。この方法を使う場合、フィールド マスクはフィルターとして動作しますが、どちらかといえば、どの API フィールドをアップデートするかを制御するビットマスクのような働きになります。次の動画では、Google Sheets API と Slides API を使ったいくつかの例を挙げてアップデート フィールド マスクの使用方法について説明しています。ぜひご覧ください。
{
"repeatCell": {
"range": {
"endRowIndex": 1
},
"cell": {
"userEnteredFormat": {
"textFormat": {
"bold": true
}
}
},
"fields": "userEnteredFormat/textFormat/bold",
}
}
「これは冗長ではないか?」と思うかもしれません。しかし、上の例は 2 つの部分からなる点に注目してください。1)リクエストが望む変更点についてのデータを提供します。2)たとえば、1 行目のすべてのセルの userEnteredFormat/textFormat/bold 属性というような形で、フィールド マスクで何をアップデートするかを指定します。もう少し明示的に説明するために、斜体のような別のマスクを追加してみましょう。これでアップデート フィールド マスクに、太字と斜体の両方のフィールドが設定されました。
"fields": "userEnteredFormat/textFormat(bold,italic)"
ただし、フィールド マスクに両方の要素が存在しても、アップデート データを提供しているのは太字だけです。リクエスト本体には、italic を設定するデータは指定されていません。この場合、すべてのセルがリセットされます。つまり、セルがもともと斜体になっていれば、API リクエストの完了後に斜体が解除されます。逆に、最初からセルが斜体になっていない場合は、セルはそのままになります。この機能を使うと、あるセルの範囲を元に戻したり、以前の設定をリセットしたりする機能を実現できます。その他の例や、アップデート リクエストへのフィールド マスクの活用方法については、先ほどの動画をご覧ください。
フィールド マスクを使って API ペイロードの部分的な応答を取得する方法の詳細については、こちらの動画や 2 回シリーズの 1 回目の投稿をご覧ください。両方(読み取りおよびアップデート)のユースケースに関する総合的な記事については、Google Slides API ドキュメントのガイドをご覧ください。 ぜひフィールド マスクをお楽しみください!
Posted by Eiji Kitamura - Developer Relations Team