ファイルにメタデータインスタンスを作成

post
https://api.box.com/2.0
/files/:file_id/metadata/:scope/:template_key

メタデータテンプレートのインスタンスをファイルに適用します。

ほとんどの場合、メタデータテンプレートに存在する値のみを使用できます。ただし、任意のキー/値ペアを使用できるglobal.propertiesテンプレートは除きます。

リクエスト

Bearer [ACCESS_TOKEN]
application/json

パスパラメータ

stringパス内必須
12345

ファイルを表す一意の識別子。

ファイルIDを確認するには、ウェブアプリケーションでファイルにアクセスして、URLからIDをコピーします。たとえば、URLがhttps://*.app.box.com/files/123の場合、file_id123です。

stringパス内必須
global

メタデータテンプレートのスコープ

次の値のいずれか1つ: global,enterprise

stringパス内必須
properties

メタデータテンプレートの名前

リクエスト本文

string本文内省略可能
Aaron Levie

メタデータテンプレートに存在する各フィールドの値。

global.propertiesテンプレートの場合、汎用的なキー/値ペアをテンプレートに保存できるため、0個以上のフィールドのリストにすることができます。

レスポンス

テンプレートに適用されたデータを含む、ファイルに適用されたテンプレートのインスタンスを返します。

リクエスト本文が無効な場合にエラーを返します。

  • schema_validation_failed - リクエスト本文に、存在しないフィールドか、値またはタイプが期待されるフィールドタイプと一致しないフィールドの値が含まれています。たとえば、enumまたはmultiSelectフィールドに不明なオプションが指定されている場合があります。

ファイルテンプレートまたはメタデータテンプレートが見つからない場合はエラーを返します。

  • not_found - ファイルが見つからないか、ユーザーがファイルにアクセスできない場合に返されます。
  • instance_tuple_not_found - メタデータテンプレートが見つからない場合に返されます。

このメタデータテンプレートのインスタンスがすでにファイルに存在する場合はエラーを返します。

  • tuple_already_exists - メタデータテンプレートのインスタンスがすでにファイルに存在する場合に返されます。

予期しないクライアントエラー。

post
ファイルにメタデータインスタンスを作成
このドキュメント内で一部のAPIを試せるようになりました。
ログイン

リクエストの例

cURL
curl -X POST https://api.box.com/2.0/files/12345/metadata/enterprise_27335/blueprintTemplate \
     -H 'Authorization: Bearer <ACCESS_TOKEN>'
     -H 'Content-Type: application/json" '
     -d '{
       "audience: "internal",
       "documentType": "Q1 plans",
       "competitiveDocument": "no",
       "status": "active",
       "author": "Jones",
       "currentState": "proposal"
     }'
.NET
var metadataValues = new Dictionary<string, object>()
{
    { "audience", "internal" },
    { "documentType", "Q1 plans" },
    { "competitiveDocument", "no" },
    { "status", "active" },
    { "author": "M. Jones" },
    { "currentState": "proposal" }
};
Dictionary<string, object> metadata = await client.MetadataManager
    .CreateFileMetadataAsync(fileId: "11111", metadataValues, "enterprise", "marketingCollateral");
Java
// Add property "foo" with value "bar" to the default metadata properties
BoxFile file = new BoxFile(api, "id");
file.createMetadata(new Metadata().add("/foo", "bar"));
Python
metadata = {
    'foo': 'bar',
    'baz': 'quux',
}

applied_metadata = client.file(file_id='11111').metadata().create(metadata)
print('Applied metadata in instance ID {0}'.format(applied_metadata['$id']))
Node
var metadataValues = {
	audience: "internal",
	documentType: "Q1 plans",
	competitiveDocument: "no",
	status: "active",
	author: "Jones",
	currentState: "proposal"
};
client.files.addMetadata('11111', client.metadata.scopes.ENTERPRISE, "marketingCollateral", metadataValues)
	.then(metadata => {
		/* metadata -> {
			audience: 'internal',
			documentType: 'Q1 plans',
			competitiveDocument: 'no',
			status: 'active',
			author: 'Jones',
			currentState: 'proposal',
			'$type': 'marketingCollateral-d086c908-2498-4d3e-8a1f-01e82bfc2abe',
			'$parent': 'file_11111',
			'$id': '2094c584-68e1-475c-a581-534a4609594e',
			'$version': 0,
			'$typeVersion': 0,
			'$template': 'marketingCollateral',
			'$scope': 'enterprise_12345' }
		*/
	});
iOS
let metadata = [
    "name": "John Doe",
    "birthday": "2000-01-01T00:00:00Z",
    "department": "Sales"
]
client.metadata.create(
    forFileWithId: "11111",
    scope: "enterprise",
    templateKey: "personnelRecord",
    keys: metadata
) { (result: Result<MetadataObject, BoxSDKError>) in
    guard case let .success(metadata) = result {
        print("Error adding metadata")
        return
    }

    print("Successfully attached metadata")
}

レスポンスの例

{
  "$canEdit": true,
  "$id": "01234500-12f1-1234-aa12-b1d234cb567e",
  "$parent": "folder_59449484661,",
  "$scope": "enterprise_27335",
  "$template": "properties",
  "$type": "properties-6bcba49f-ca6d-4d2a-a758-57fe6edf44d0",
  "$typeVersion": 2,
  "$version": 1
}