日本時間5月16日のContent Cloud Summitで、カスタムアプリにBox AI APIを活用する方法を紹介します。

詳細を表示

クエリの作成

クエリの作成

メタデータクエリとは、/metadata_queries/execute_readエンドポイントに対するPOSTリクエストで、その本文にはメタデータクエリのすべてのパーツが含まれています。ここで最も重要なのは、検索対象のテンプレートを指定するfrom属性、検索するフォルダを指定するancestor_folder_id、検索に使用するすべてのテンプレートフィールドを決定するqueryです。

curl -X POST https://api.box.com/2.0/metadata_queries/execute_read \
     -H 'Authorization: Bearer <ACCESS_TOKEN>' \
     -H 'Content-Type: application/json' \
     -d '{
       "from": "enterprise_123456.contractTemplate",
       "query": "amount >= :value",
       "query_params": {
         "value": 100
       },
       "fields": [
         "name",
         "metadata.enterprise_123456.contractTemplate.customerName",
         "metadata.enterprise_123456.contractTemplate.amount" 
       ],
       "ancestor_folder_id": "5555",
       "order_by": [
         {
           "field_key": "amount",
           "direction": "asc"
         }
       ],
       "limit": 100
     }'

使用可能なすべてのパラメータの詳細については、Boxの他のメタデータクエリガイドまたは関連するエンドポイントリファレンスを参照してください。

クエリ構文の詳細を確認する

レスポンス

クエリに一致するファイルまたはフォルダがあれば、APIレスポンスで返されます。レスポンスの本文はJSONオブジェクトで、各ファイルまたはフォルダのentriesのリストと、次の検索結果ページを見つけるためのnext_marker値が含まれています。各エントリは、クエリに一致したファイルまたはフォルダを表し、fieldパラメータで明示的にリクエストされたフィールドのみが返されます。

{
  "entries":[
    {
      "type": "file",
      "id": "1617554169109",
      "name": "My Contract.docx",
      "metadata":{
        "enterprise_123456":{
          "contractTemplate":{
            "$parent": "file_161753469109",
            "$scope": "enterprise_123456",
            "$template": "contractTemplate",
            "$version":0,
            "customerName":"Phoenix Corp",
            "amount":100
          }
        }
      }
    }
  ],
  "limit": 20,
  "next_marker":"AAAAAmVYB1FWec8GH6yWu2nwmanfMh07IyYInaa7DZDYjgO1H4KoLW29vPlLY173OKsci6h6xGh61gG73gnaxoS+o0BbI1/h6le6cikjlupVhASwJ2Cj0tOD9wlnrUMHHw3/ISf+uuACzrOMhN6d5fYrbidPzS6MdhJOejuYlvsg4tcBYzjauP3+VU51p77HFAIuObnJT0ff"
}

このAPIはデフォルトで、ページあたり20個の項目を返しますが、マーカーベースのページ割りを使用すると、さらに多くの項目をリクエストできます。

ページ割りクエリの結果の詳細を確認する