メタデータテンプレートの更新
メタデータテンプレートの更新
メタデータテンプレートを更新するには、操作の配列をPUT /metadata_templates/:scope/:templateKey/schema APIに渡します。
cURL
curl -i -X PUT "https://api.box.com/2.0/metadata_templates/enterprise/blueprintTemplate/schema" \
-H "authorization: Bearer <ACCESS_TOKEN>" \
-H "content-type: application/json-patch+json" \
-d '[
{
"op": "editField",
"fieldKey": "category",
"data": {
"displayName": "Customer Group"
}
}
]'Node/TypeScript v10
await client.metadataTemplates.updateMetadataTemplate(
'enterprise' as UpdateMetadataTemplateScope,
templateKey,
[
{
op: 'addField' as UpdateMetadataTemplateRequestBodyOpField,
fieldKey: 'newfieldname',
data: { ['type']: 'string', ['displayName']: 'newFieldName' },
} satisfies UpdateMetadataTemplateRequestBody,
],
);Python v10
client.metadata_templates.update_metadata_template(
UpdateMetadataTemplateScope.ENTERPRISE,
template_key,
[
UpdateMetadataTemplateRequestBody(
op=UpdateMetadataTemplateRequestBodyOpField.ADDFIELD,
field_key="newfieldname",
data={"type": "string", "displayName": "newFieldName"},
)
],
).NET v10
await client.MetadataTemplates.UpdateMetadataTemplateAsync(scope: UpdateMetadataTemplateScope.Enterprise, templateKey: templateKey, requestBody: Array.AsReadOnly(new [] {new UpdateMetadataTemplateRequestBody(op: UpdateMetadataTemplateRequestBodyOpField.AddField) { FieldKey = "newfieldname", Data = new Dictionary<string, object>() { { "type", "string" }, { "displayName", "newFieldName" } } }}));Swift v10
try await client.metadataTemplates.updateMetadataTemplate(scope: UpdateMetadataTemplateScope.enterprise, templateKey: templateKey, requestBody: [UpdateMetadataTemplateRequestBody(op: UpdateMetadataTemplateRequestBodyOpField.addField, fieldKey: "newfieldname", data: ["type": "string", "displayName": "newFieldName"])])Java v10
client.getMetadataTemplates().updateMetadataTemplate(UpdateMetadataTemplateScope.ENTERPRISE, templateKey, Arrays.asList(new UpdateMetadataTemplateRequestBody.Builder(UpdateMetadataTemplateRequestBodyOpField.ADDFIELD).data(mapOf(entryOf("type", "string"), entryOf("displayName", "newFieldName"))).fieldKey("newfieldname").build())).NET v6
await client.MetadataTemplates.UpdateMetadataTemplateAsync(scope: UpdateMetadataTemplateScope.Enterprise, templateKey: templateKey, requestBody: Array.AsReadOnly(new [] {new UpdateMetadataTemplateRequestBody(op: UpdateMetadataTemplateRequestBodyOpField.AddField) { FieldKey = "newfieldname", Data = new Dictionary<string, object>() { { "type", "string" }, { "displayName", "newFieldName" } } }}));Node v4
await client.metadataTemplates.updateMetadataTemplate(
'enterprise' as UpdateMetadataTemplateScope,
templateKey,
[
{
op: 'addField' as UpdateMetadataTemplateRequestBodyOpField,
fieldKey: 'newfieldname',
data: { ['type']: 'string', ['displayName']: 'newFieldName' },
} satisfies UpdateMetadataTemplateRequestBody,
],
);操作
メタデータテンプレートの更新は、テンプレート自体を直接変更するのではなく、操作を利用して実行されます。この方法では、ファイルおよびフォルダにすでに適用されている既存のメタデータインスタンスを更新できます。
テンプレートの操作
テンプレートの操作により、テンプレートの詳細またはフィールドが更新されます。一般的に、これらの操作は、あまり影響なくテンプレートインスタンスに適用されるため安全です。
テンプレートの編集
editTemplate操作では、displayNameやcopyInstanceOnItemCopyなど、テンプレートの基本プロパティを編集できます。
| パラメータ | |
|---|---|
data | 変更するプロパティを表すオブジェクト |
[
{
"op": "editTemplate",
"data": {
"displayName": "Client",
"copyInstanceOnItemCopy": true
}
}
]
これにより、新しい表示名がClientになるようにテンプレートが更新されます。
テンプレートへのフィールドの追加
addField操作では、テンプレートにフィールドを追加します。
| パラメータ | |
|---|---|
data | 追加するフィールドを表すオブジェクト |
[
{
"op": "addField",
"data": {
"displayName": "Category",
"key": "category",
"hidden": false,
"type": "string"
}
}
]
これにより、displayNameおよびkeyがcategoryに指定されている、非表示ではない新しい文字列フィールドが追加されます。