schemaExtension の作成Create schemaExtension

サポートするリソースの種類を拡張するために、schemaExtension 定義を新規作成します。Create a new schemaExtension definition to extend a supporting resource type.

スキーマ拡張機能により、厳密に型指定されたカスタム データをリソースに追加することができます。スキーマ拡張機能を作成するアプリは、所有者アプリです。拡張機能の状態によっては、拡張機能を更新または削除できるのは、所有者アプリだけです。Schema extensions let you add strongly-typed custom data to a resource. The app that creates a schema extension is the owner app. Depending on the state of the extension, the owner app, and only the owner app, may update or delete the extension.

トレーニング コースを説明するスキーマ拡張機能を定義する方法、スキーマ拡張定義を使用してトレーニング コース データで新規グループを作成する方法、既存グループにトレーニング コース データを追加する方法については、それぞれの例を参照してください。See examples of how to define a schema extension that describes a training course, use the schema extension definition to create a new group with training course data, and add training course data to an existing group.

アクセス許可Permissions

この API を呼び出すには、次のいずれかのアクセス許可が必要です。アクセス許可の選択方法などの詳細については、「アクセス許可」を参照してください。One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions.

アクセス許可の種類Permission type アクセス許可 (特権の小さいものから大きいものへ)Permissions (from least to most privileged)
委任 (職場または学校のアカウント)Delegated (work or school account) Directory.AccessAsUser.AllDirectory.AccessAsUser.All
委任 (個人用 Microsoft アカウント)Delegated (personal Microsoft account) サポートされていません。Not supported.
アプリケーションApplication サポートされていません。Not supported.

HTTP 要求HTTP request

POST /schemaExtensions

要求ヘッダーRequest headers

名前Name 説明Description
AuthorizationAuthorization ベアラー {トークン}。必須。Bearer {token}. Required.
Content-TypeContent-Type application/jsonapplication/json

要求本文Request body

要求本文では、schemaExtension オブジェクトの JSON 表記を指定します。In the request body, supply a JSON representation of schemaExtension object.

次の表に、スキーマ拡張機能の作成時に必要なプロパティを示します。The following table shows the properties that are required when you create a schema extension.

パラメーターParameter Type 説明Description
descriptiondescription StringString スキーマ拡張機能の説明。Description for the schema extension.
idid StringString スキーマ拡張機能の定義の一意の識別子。The unique identifier for the schema extension definition.
値の割り当ては、以下の 2 方法のいずれかで行うことができます。You can assign a value in one of two ways:
  • 確認されたドメインの内の 1 つの名前とスキーマ拡張機能の名前を連結して、{domainName}_{schemaName} という形式の一意の文字列を形成します。Concatenate the name of one of your verified domains with a name for the schema extension to form a unique string in this format, {domainName}_{schemaName}. 次に例 contoso_mySchema を示します。As an example, contoso_mySchema. 注: 上位ドメイン .com.net.gov.edu.org の下では、検証済みのドメインのみがサポートされます。NOTE: Only verified domains under the following top-level domains are supported: .com,.net, .gov, .edu or .org.
  • スキーマ名を指定し、Microsoft Graph がそのスキーマ名を使用して id 割り当てを完了するには、次の形式を使用します。ext{8-random-alphanumeric-chars}_{schema-name}。たとえば、extkvbmkofy_mySchema です。Provide a schema name, and let Microsoft Graph use that schema name to complete the id assignment in this format: ext{8-random-alphanumeric-chars}_{schema-name}. An example would be extkvbmkofy_mySchema.
作成後、このプロパティは変更できません。This property cannot be changed after creation.
ownerowner StringString (省略可能) スキーマ拡張機能の所有者であるアプリケーションの appId です。(Optional) The appId of the application that is the owner of the schema extension. このプロパティは作成時に指定して所有者を設定できます。This property can be supplied on creation, to set the owner. 指定しない場合、呼び出し元のアプリケーションの appId が所有者として設定されます。If not supplied, then the calling application's appId will be set as the owner. たとえば、Graph エクスプローラーを使用して新しいスキーマ拡張機能の定義を作成する場合は、所有者プロパティを指定する必要がありますSo, for example, if creating a new schema extension definition using Graph Explorer, you must supply the owner property. 設定すると、このプロパティは読み取り専用で、変更することはできません。Once set, this property is read-only and cannot be changed.
propertiesproperties extensionSchemaProperty コレクションextensionSchemaProperty collection スキーマ拡張機能の定義を構成するプロパティの名前と種類のコレクション。The collection of property names and types that make up the schema extension definition.
targetTypestargetTypes String collectionString collection このスキーマ拡張機能の定義を適用できる、(スキーマ拡張機能をサポートしている) 一連の Microsoft Graph のリソースの種類。Set of Microsoft Graph resource types (that support schema extensions) that this schema extension definition can be applied to.

応答Response

成功した場合、このメソッドは応答本文で 201 Created 応答コードと、schemaExtension オブジェクトを返します。If successful, this method returns 201 Created response code and schemaExtension object in the response body.

Example

要求 1Request 1

最初の例では、確認済みのドメイン名 graphlearn とスキーマ名 courses を使用して、スキーマ拡張機能の定義の id プロパティの一意の文字列を形成します。一意の文字列は次の形式に基づきます。{domainName}_{schemaName}。The first example shows using a verified domain name, graphlearn, and a schema name, courses, to form a unique string for the id property of the schema extension definition. The unique string is based on this format, {domainName}_{schemaName}.

要求本文では、schemaExtension オブジェクトの JSON 表記を指定します。In the request body, supply a JSON representation of the schemaExtension object.

POST https://graph.microsoft.com/v1.0/schemaExtensions
Content-type: application/json

{
    "id":"graphlearn_courses",
    "description": "Graph Learn training courses extensions",
    "targetTypes": [
        "Group"
    ],
    "properties": [
        {
            "name": "courseId",
            "type": "Integer"
        },
        {
            "name": "courseName",
            "type": "String"
        },
        {
            "name": "courseType",
            "type": "String"
        }
    ]
}
応答 1Response 1

以下は、応答の例です。注:簡潔にするために、ここに示す応答オブジェクトは切り詰められている場合があります。すべてのプロパティは実際の呼び出しから返されます。Here is an example of the response. Note: The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call.

HTTP/1.1 201 Created
Content-type: application/json
Content-length: 420

{
    "id": "graphlearn_courses",
    "description": "Graph Learn training courses extensions",
    "targetTypes": [
        "Group"
    ],
    "status": "InDevelopment",
    "owner": "24d3b144-21ae-4080-943f-7067b395b913",
    "properties": [
        {
            "name": "courseId",
            "type": "String"
        },
        {
            "name": "courseName",
            "type": "String"
        },
        {
            "name": "courseType",
            "type": "String"
        }
    ]
}
要求 2Request 2

2 番目の例では、要求の id プロパティ内のスキーマ名 courses だけを指定し、schemaExtension オブジェクト内の残りのプロパティを JSON 表記で指定しています。Microsoft Graph は一意の文字列値を割り当て、それを応答内で返します。The second example shows specifying just a schema name, courses, in the id property in the request, together with the JSON representation of the rest of the properties in the schemaExtension object. Microsoft Graph will assign and return a unique string value in the response.

POST https://graph.microsoft.com/v1.0/schemaExtensions
Content-type: application/json

{
    "id":"courses",
    "description": "Graph Learn training courses extensions",
    "targetTypes": [
        "Group"
    ],
    "properties": [
        {
            "name": "courseId",
            "type": "Integer"
        },
        {
            "name": "courseName",
            "type": "String"
        },
        {
            "name": "courseType",
            "type": "String"
        }
    ]
}
応答 2Response 2

応答には、要求の中で提供されているスキーマ名に基づいた一意の文字列がその id プロパティ内に含まれ、新規作成したスキーマ定義の残りの部分も応答に含まれています。応答の中の id の値は、次の形式に基づきます。ext{8-random-alphanumeric-chars}_{schema-name}。注:簡潔にするために、ここに示す応答オブジェクトは切り詰められている場合があります。実際の呼び出しではすべてのプロパティが返されます。The response includes a unique string in the id property that is based on the schema name provided in the request, together with the rest of the newly created schema definition. The value in id in the response is based on the format, ext{8-random-alphanumeric-chars}_{schema-name}. Note: The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call.

HTTP/1.1 201 Created
Content-type: application/json
Content-length: 420

{
    "id": "extk9eruy7c_courses",
    "description": "Graph Learn training courses extensions",
    "targetTypes": [
        "Group"
    ],
    "status": "InDevelopment",
    "owner": "24d3b144-21ae-4080-943f-7067b395b913",
    "properties": [
        {
            "name": "courseId",
            "type": "String"
        },
        {
            "name": "courseName",
            "type": "String"
        },
        {
            "name": "courseType",
            "type": "String"
        }
    ]
}

関連項目See also