Box Developerドキュメント

Box Developerドキュメントの新しいベータ版サイトがまもなくリリースされる予定です。最新の開発者向けガイド、APIリファレンス、AI搭載の検索により、Boxを使用した迅速な開発をサポートします。更新情報については今しばらくお待ちください。

最新バージョン

フォルダのメタデータインスタンスを更新

put
https://api.box.com/2.0
/folders/:folder_id/metadata/:scope/:template_key

このエンドポイントはバージョン2024.0です。引き続き使用するために 変更は必要ありません。詳細については、 **Box APIのバージョン管理**を参照してください。

フォルダのメタデータを更新します。

メタデータインスタンスを更新できるのは、テンプレートがすでにフォルダに適用されている場合のみです。メタデータを編集する際には、メタデータテンプレートのスキーマに一致した値のみを使用できます。

更新はアトミックに適用されます。操作の適用中にエラーが発生した場合、メタデータインスタンスは変更されません。

リクエスト

bearer [ACCESS_TOKEN]
application/json-patch+json

パスパラメータ

stringパス内必須
12345

フォルダを表す一意の識別子。

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

Boxアカウントのルートフォルダは常にID 0で表されます。

stringパス内必須
global

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

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

stringパス内必須
properties

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

リクエスト本文

object array本文内必須

メタデータインスタンスに変更を加えるためのJSON-Patchの指定。

変更は操作オブジェクトのJSON配列として表されます。

string本文内省略可能
"/nextState"

値の移動元またはコピー元であるメタデータJSONオブジェクト内の場所。moveまたはcopy操作には必須であり、JSON-Pointerの形式である必要があります。

string本文内省略可能
"add"

テンプレートに対して実行する変更のタイプ。その中には、既存のテンプレートを変更する際に危険を伴うものもあります。

次の値のいずれか1つ: add,replace,remove,test,move,copy

string本文内省略可能
"/currentState"

変更を適用するメタデータJSONオブジェクト内の場所を、JSON-Pointerの形式で指定します。

パスの先頭にはテンプレートのルートを表す/を必ず付ける必要があります。文字~/は予約文字であるため、キー内ではエスケープする必要があります。

string / integer / number (float) / string array 本文内
"reviewed"

設定またはテストする値。

addreplacetest操作では必須です。addの場合、値がすでに存在するときは、古い値が新しい値で上書きされます。replaceの場合、置換の前に値がすでに存在している必要があります。

testの場合、pathの位置にある既存の値が指定した値と一致している必要があります。

レスポンス

カスタムテンプレートデータを含め、更新されたメタデータテンプレートインスタンスを返します。

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

  • bad_request - リクエスト本文の形式が有効なJSON Patchオブジェクトの配列ではありません。

リクエスト本文が有効なJSON Patch項目の配列でない場合、一部のエッジケースでエラーを返します。

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

put
フォルダのメタデータインスタンスを更新
このドキュメント内で一部のAPIを試せるようになりました。
ログイン

リクエストの例

Box SDKのバージョン戦略の詳細については、 **こちら**を確認してください。


cURL
curl -i -X PUT "https://api.box.com/2.0/folders/4353455/metadata/enterprise_27335/blueprintTemplate" \
     -H "authorization: Bearer <ACCESS_TOKEN>" \
     -H "content-type: application/json-patch+json" \
     -d '[
        {
          "op": "test",
          "path": "/competitiveDocument",
          "value": "no"
        },
        {
          "op": "remove",
          "path": "/competitiveDocument"
        },
        {
          "op": "test",
          "path": "/status",
          "value": "active"
        },
        {
          "op": "replace",
          "path": "/status",
          "value": "inactive"
        },
        {
          "op": "test",
          "path": "/author",
          "value": "Jones"
        },
        {
          "op": "copy",
          "from": "/author",
          "path": "/editor"
        },
        {
          "op": "test",
          "path": "/currentState",
          "value": "proposal"
        },
        {
          "op": "move",
          "from": "/currentState",
          "path": "/previousState"
        },
        {
          "op": "add",
          "path": "/currentState",
          "value": "reviewed"
        }
      ]'
Node/TypeScript v10
await client.folderMetadata.updateFolderMetadataById(
  folder.id,
  'enterprise' as UpdateFolderMetadataByIdScope,
  templateKey,
  [
    {
      op: 'replace' as UpdateFolderMetadataByIdRequestBodyOpField,
      path: '/name',
      value: 'Jack',
    } satisfies UpdateFolderMetadataByIdRequestBody,
    {
      op: 'replace' as UpdateFolderMetadataByIdRequestBodyOpField,
      path: '/age',
      value: 24,
    } satisfies UpdateFolderMetadataByIdRequestBody,
    {
      op: 'replace' as UpdateFolderMetadataByIdRequestBodyOpField,
      path: '/birthDate',
      value: '2000-01-03T02:20:50.520Z',
    } satisfies UpdateFolderMetadataByIdRequestBody,
    {
      op: 'replace' as UpdateFolderMetadataByIdRequestBodyOpField,
      path: '/countryCode',
      value: 'CA',
    } satisfies UpdateFolderMetadataByIdRequestBody,
    {
      op: 'replace' as UpdateFolderMetadataByIdRequestBodyOpField,
      path: '/sports',
      value: ['football'],
    } satisfies UpdateFolderMetadataByIdRequestBody,
  ],
);
Python v10
client.folder_metadata.update_folder_metadata_by_id(
    folder.id,
    UpdateFolderMetadataByIdScope.ENTERPRISE,
    template_key,
    [
        UpdateFolderMetadataByIdRequestBody(
            op=UpdateFolderMetadataByIdRequestBodyOpField.REPLACE,
            path="/name",
            value="Jack",
        ),
        UpdateFolderMetadataByIdRequestBody(
            op=UpdateFolderMetadataByIdRequestBodyOpField.REPLACE, path="/age", value=24
        ),
        UpdateFolderMetadataByIdRequestBody(
            op=UpdateFolderMetadataByIdRequestBodyOpField.REPLACE,
            path="/birthDate",
            value="2000-01-03T02:20:50.520Z",
        ),
        UpdateFolderMetadataByIdRequestBody(
            op=UpdateFolderMetadataByIdRequestBodyOpField.REPLACE,
            path="/countryCode",
            value="CA",
        ),
        UpdateFolderMetadataByIdRequestBody(
            op=UpdateFolderMetadataByIdRequestBodyOpField.REPLACE,
            path="/sports",
            value=["football"],
        ),
    ],
)
.NET v10
await client.FolderMetadata.UpdateFolderMetadataByIdAsync(folderId: folder.Id, scope: UpdateFolderMetadataByIdScope.Enterprise, templateKey: templateKey, requestBody: Array.AsReadOnly(new [] {new UpdateFolderMetadataByIdRequestBody() { Op = UpdateFolderMetadataByIdRequestBodyOpField.Replace, Path = "/name", Value = "Jack" },new UpdateFolderMetadataByIdRequestBody() { Op = UpdateFolderMetadataByIdRequestBodyOpField.Replace, Path = "/age", Value = 24 },new UpdateFolderMetadataByIdRequestBody() { Op = UpdateFolderMetadataByIdRequestBodyOpField.Replace, Path = "/birthDate", Value = "2000-01-03T02:20:50.520Z" },new UpdateFolderMetadataByIdRequestBody() { Op = UpdateFolderMetadataByIdRequestBodyOpField.Replace, Path = "/countryCode", Value = "CA" },new UpdateFolderMetadataByIdRequestBody() { Op = UpdateFolderMetadataByIdRequestBodyOpField.Replace, Path = "/sports", Value = Array.AsReadOnly(new [] {"football"}) }}));
Java v10
client.getFolderMetadata().updateFolderMetadataById(folder.getId(), UpdateFolderMetadataByIdScope.ENTERPRISE, templateKey, Arrays.asList(new UpdateFolderMetadataByIdRequestBody.Builder().op(UpdateFolderMetadataByIdRequestBodyOpField.REPLACE).path("/name").value("Jack").build(), new UpdateFolderMetadataByIdRequestBody.Builder().op(UpdateFolderMetadataByIdRequestBodyOpField.REPLACE).path("/age").value(24L).build(), new UpdateFolderMetadataByIdRequestBody.Builder().op(UpdateFolderMetadataByIdRequestBodyOpField.REPLACE).path("/birthDate").value("2000-01-03T02:20:50.520Z").build(), new UpdateFolderMetadataByIdRequestBody.Builder().op(UpdateFolderMetadataByIdRequestBodyOpField.REPLACE).path("/countryCode").value("CA").build(), new UpdateFolderMetadataByIdRequestBody.Builder().op(UpdateFolderMetadataByIdRequestBodyOpField.REPLACE).path("/sports").value(Arrays.asList("football")).build()))
.NET v6
await client.FolderMetadata.UpdateFolderMetadataByIdAsync(folderId: folder.Id, scope: UpdateFolderMetadataByIdScope.Enterprise, templateKey: templateKey, requestBody: Array.AsReadOnly(new [] {new UpdateFolderMetadataByIdRequestBody() { Op = UpdateFolderMetadataByIdRequestBodyOpField.Replace, Path = "/name", Value = "Jack" },new UpdateFolderMetadataByIdRequestBody() { Op = UpdateFolderMetadataByIdRequestBodyOpField.Replace, Path = "/age", Value = 24 },new UpdateFolderMetadataByIdRequestBody() { Op = UpdateFolderMetadataByIdRequestBodyOpField.Replace, Path = "/birthDate", Value = "2000-01-03T02:20:50.520Z" },new UpdateFolderMetadataByIdRequestBody() { Op = UpdateFolderMetadataByIdRequestBodyOpField.Replace, Path = "/countryCode", Value = "CA" },new UpdateFolderMetadataByIdRequestBody() { Op = UpdateFolderMetadataByIdRequestBodyOpField.Replace, Path = "/sports", Value = Array.AsReadOnly(new [] {"football"}) }}));
Node v4
await client.folderMetadata.updateFolderMetadataById(
  folder.id,
  'enterprise' as UpdateFolderMetadataByIdScope,
  templateKey,
  [
    {
      op: 'replace' as UpdateFolderMetadataByIdRequestBodyOpField,
      path: '/name',
      value: 'Jack',
    } satisfies UpdateFolderMetadataByIdRequestBody,
    {
      op: 'replace' as UpdateFolderMetadataByIdRequestBodyOpField,
      path: '/age',
      value: 24,
    } satisfies UpdateFolderMetadataByIdRequestBody,
    {
      op: 'replace' as UpdateFolderMetadataByIdRequestBodyOpField,
      path: '/birthDate',
      value: '2000-01-03T02:20:50.520Z',
    } satisfies UpdateFolderMetadataByIdRequestBody,
    {
      op: 'replace' as UpdateFolderMetadataByIdRequestBodyOpField,
      path: '/countryCode',
      value: 'CA',
    } satisfies UpdateFolderMetadataByIdRequestBody,
    {
      op: 'replace' as UpdateFolderMetadataByIdRequestBodyOpField,
      path: '/sports',
      value: ['football'],
    } satisfies UpdateFolderMetadataByIdRequestBody,
  ],
);

レスポンスの例

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