リクエストの仕組み

このページでは、Google Classroom API でのリクエストの仕組みの概要について説明します。このガイドは、リソース指向設計や Google Workspace API にまだ慣れていない読者を対象としています。

具体的なコードサンプルについては、対応する API ガイド(コースの作成と管理課題の作成と管理など)をご覧ください。

リソース指向の設計

API リソースで説明したように、Classroom API はリソース指向の設計パターンに従います。ほとんどのリソースには、リソースのインスタンスの作成、読み取り、更新、削除などの標準オペレーションを行うメソッドがあります。

たとえば、API を使用して Classroom の Coursecreate()patch()get()list()delete() できます。

作成

Course などの新しいリソースを作成するには、対応するリソースの create() メソッドを呼び出します。

Create() 呼び出しでは、対応するリソースの初期の重要な詳細情報を入力として常に必要とします。たとえば、Course を作成するには、Course リソースの create() メソッドを呼び出し、リクエストで namedescription を指定します。また、room などのオプション情報も指定します。

サブリソース(子リソースとも呼ばれます)の場合、親リソースの識別子も必要です。たとえば、Course 内に CourseWork を作成する場合、CourseWork がどの Course に属するかを確立するために Course id が必要になります。

Create() メソッドは、API 呼び出しのレスポンスで、新しく作成されたリソースのインスタンスを返します。通常、返されるリソースには、リソースの idcreationTime など、サーバーで生成された追加のフィールドが含まれます。

パッチ

既存のリソースを変更するには、対応するリソースで patch() メソッド(update() とも呼ばれます)を呼び出します。patch() メソッドは create() とほぼ同じですが、2 つの重要な違いがあります。patch() メソッドを呼び出すときは、次の指定が必要です。

  1. 変更するリソースの id
  2. リソースのどのフィールドを更新するかを決定するフィールドのリスト(updateMask と呼ばれます)。デフォルトのフィールド セットがある場合や、フィールドが推測される場合は、省略可能です。

Patch() メソッドは、API 呼び出しレスポンスで更新されたリソースの完全なインスタンスを返します。すべての変更が完了しています。

取得して一覧表示する

リソースを取得する方法は get()list() の 2 つです。

get() メソッドは、特定の識別子で特定のリソースを取得します。たとえば、id または alias に基づいて Course を取得します。get() 呼び出しは、完全なリソースを直接返します。

list() メソッドは、個々のリソース識別子を必要とせずに、同じタイプのリソースを 1 つのリクエストで複数取得します。多くの場合、list() オペレーションは、親リソースのすべてのサブリソースを取得します(たとえば、Course 内のすべての CourseWork を取得します)。これは、複数の get() 呼び出しを行う場合と比較してリクエストを最小限に抑えるのに役立ちます。特に、必要なリソースの id がわからない場合に便利です。

通常、list() メソッドには、1 回の呼び出しで返されるリソースの最大量があり、呼び出しに pageSize 値を含めることで下限を構成できます。リソースの数が上限を超える場合、list() メソッドはページネーションをサポートします。返される結果の各「ページ」には pageToken が含まれており、後続の list() 呼び出しに含めて、次のリソース バッチを取得できます。

削除

delete() メソッドは、id などのリソース ID を受け取り、対応するリソースを削除します。delete() が成功すると、空のレスポンスが返されます。

その他の演算

Classroom API で可能なすべてのオペレーションが、前述の標準オペレーションで実現できるわけではありません。たとえば、CourseWork リソースの割り当て先を変更する場合などです。このような場合、modifyAssignees メソッドなどのカスタム メソッドを使用できます。これらのメソッドの動作はカスタムであるため、個別にドキュメントを参照する必要があります。