先ほど開発環境(az-api.hexabase.com)に対して、API関連の更新版がリリースされました。以下にリリース案内をいたします。
検索条件の強化
(1)データレポートの検索条件の強化
- DataReportにもOR検索、Nestした検索条件の指定が可能となりました。
- conditionsについて、データレポートでも Item検索と同様のフォーマットで指定可能となりました。
- id:には画面から指定したデータレポートフィールドのID(display_id)を指定します
(リスクエストPayloadの例)
{
"conditions":[
{"id": "Category", "search_value": ["B"]},
{"conditions":[
{"id": "Field_X", "search_value": ["xxx"]},
{"id": "Field_Y", "search_value": ["yyy"]}
],
"use_or_condition": false // AND検索
}
],
"use_or_condition": true, // OR検索
"sort_fields": [
{"id":"Status", "order": "desc"},
{"id":"Category", "order": "asc"}
],
"omit_fields_data": true,
"per_page": 0,
"pages": 1
}
(2)検索バリエーションの強化
- 検索条件に指定可能なパラメータが増えました。(件数のみの取得、または一覧のみ取得の指定、タイムアウト値の指定など)
対象件数が非常に多いことが想定される場合、あらかじめタイムアウト値を指定することができるようになりました。タイムアウトした場合に、画面からの絞込条件を追加するように促すなど、UI上でのコントロールを可能とすることが目的となります。
例えばデータベース検索時に、ヒットした件数は少ないが、全体件数(Count)が多い場合(例えば数十万件~数百万件)、一般的に、検索結果の取得は早いが件数カウントに時間がかかり、結果としてAPIの結果取得に時間がかかることがあります。
全体件数が必要ない場合は、件数の取得を省略するとAPI結果取得を高速化できます。
また、件数取得のみを別のAPIコールにすることで、一覧結果をいち早くユーザ画面に表示させるなどの対応が可能となります。
対象API
指定可能なパラメータ
- omit_fields_data : 結果にfieldsの情報を含めません。(不要な通信データ量を省略できます)
- omit_total_items : trueを指定すると、totalItemsをカウントしません(より高速になります) totalItemsは0となります。
- return_count_only : trueを指定すると、totalItemsのみ返却します。 itemsは[] (空配列)となります。
- data_result_timeout_sec : 一覧結果取得までのタイムアウト秒数を指定します。タイムアウトした場合は、itemsは[] (空配列)となります。
- total_count_timeout_sec : 件数取得までのタイムアウト秒数を指定します。タイムアウトした場合は-1が返ります。
(3)データレポート結果に関連Item情報(i_id, rev_no)を含める対応
データレポートの結果に、対象データを構成する関連Item情報(i_id, rev_no)を含められるようになりました。
- データレポート取得結果に、rev_noが入りました。
- include_item_ref : true を指定すると、Itemに関連するアイテムの情報(i_id, rev_no)を取得できます。
通常のDataReportの場合(グルーピングなし)
- 異なるデータベースから項目を組み合わせたデータレポートの場合に、各項目から関連先のデータを特定できるようにすることを目的としています。
"report_results": [
{
"Status": "確認",
"Category": "B",
"LinkedTask": "TaskD",
"i_id": "5f38a121aa395581685afdc1",
"item_ref": {
"Status": {
"d_id": "5f38a11baa395581685afdb4",
"i_id": "5f38a121aa395581685afdc1",
"rev_no": 4
},
"Category": {
"d_id": "5f38a11baa395581685afdb4",
"i_id": "5f38a121aa395581685afdc1",
"rev_no": 4
},
"LinkedTask": {
"d_id": "5f25956528dc5c55b463bc7b",
"i_id": "6050c6bc28dc5c1b3cf8e92a",
"rev_no": 2
},
},
"rev_no": 4
},
グルーピングされたDataReportの場合
- グルーピングされた対象Itemの配列が返却されます。
- 【注意!】従来は、デフォルトでitemsが含まれていましたが、結果情報が冗長的であったため、include_item_refパラメータをtrue指定した場合のみitemsの結果が含まれるように修正されました。
"report_results": [
{
"ChildID": "3",
"LookupMySelf": "タスクE", // Lookup type 1
"Status1": "確認",
"Status2": "完了",
"Title": "TaskD",
"Title2": "タスクE",
"created_at": "2020/08/16 11:59:45",
"items": [
{
"d_id": "5f38a11baa395581685afdb4",
"i_id": "5f38a121aa395581685afdc1"
},
{
}, .... // 対象アイテムをドリルダウンできます
],