クエリの作成

クエリの作成

メタデータクエリとは、/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",
       "use_index": "amountAsc",
       "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個の項目を返しますが、マーカーベースのページ割りを使用すると、さらに多くの項目をリクエストできます。

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