検索の実行

検索を実行するには、HTTP POST メソッドを使用してデータベース名およびレイアウトと、クエリーフィールド、クエリー条件、ソート順、開始レコード、およびレコード数を指定する追加情報を _find API エンドポイントで指定します。ポータル情報を指定して返される関連レコードの数を制限することもできます。

HTTP メソッド

POST

URL

/fmi/data/version/databases/database-name/layouts/layout-name/_find

version – リクエストされた FileMaker Data API のバージョン。v1v2、または vLatest のいずれかを使用できます。

  • バージョン 1 (v1) - 返されるポータルデータの構造は指定されたレイアウトの表示形式 (フォーム形式または表形式) に基づきます。

    • フォーム形式 - すべての関連レコードを返します

    • 表形式 - 最初の関連レコードを返します

      メモ  表示設定を変更すると返される値のポータルデータ構造が変化します。

  • バージョン 2 (v2) - 返されるポータルデータの構造はフォーム形式に基づきます。

  • 最新バージョン (vLatest) - 動作は API の最新バージョンに基づきます。

database-name – 共有データベースの名前

layout-name – 検索条件のコンテキストとして使用するレイアウト

HTTP ヘッダ

Content-Type: application/json

Authorization: Bearer session-tokensession-token はデータベースセッションに固有の X-FM-Data-Access-Token の値です。

引数

フィールドおよび検索条件を指定する JSON 形式のクエリー。オプションの引数を使用して除外リクエスト、ソート順、開始レコード (オフセット)、レコード数 (制限)、および返される関連レコード数を制限するためのポータルを指定できます。オフセット、制限、およびソートの引数はレイアウトテーブルのレコードでは機能しますが、非関連ポータルレコードでは機能しません。関連セットで表示するレコードと行の数を制限するには、offset.portal-name および limit.portal-name 引数を指定します。

異なるレイアウトのコンテキストにある応答データが必要な場合は、layout.response 引数を使用します。

例:

コピー
{
  "query":[
    {"Group": "=Surgeon"},
    {"Work State" : "NY", "omit" : "true"}],
  "sort":[
    {"fieldName": "Work State","sortOrder": "ascend"},
    {"fieldName": "First Name", "sortOrder": "ascend"} ]
}

オフセット、制限、およびポータルの使用例:

コピー
{
  "query":[
    {"Group": "=Surgeon"},
    {"Work State" : "NY", "omit" : "true"}],
  "portal": ["Portal1","Portal2"],
  "limit": "10",
  "offset": "1",
  "offset.Portal1": "1",
  "limit.Portal1": "5",
  "layout.response": "Doctors"
}

リクエストのボディに script.prerequestscript.presort、および script 引数を含めることで、FileMaker スクリプトをこのリクエストの一部として実行することができます。「FileMaker スクリプトの実行」を参照してください。

応答

JSON 形式のレコードデータおよびエラーコード 0 を表示するメッセージ配列。

例:

コピー
{
  "response": {
    "data": [ 
    ...  
    ]
  },
  "messages": [{"code":"0","message":"OK"}]
}

エラー応答」を参照してください。

メモ 

  • レコードをソートして返すと時間がかかる可能性があります。リクエストされたレイアウトのフィールドの数を制限、およびコメントを含むフィールドを除外するとレコードのダウンロード時間を短縮できます。

  • 検索条件としてグローバルフィールドを指定することはできません。検索条件でグローバルフィールドを指定すると、エラーメッセージが返されます。代わりに、検索条件の前にグローバルフィールドの値を設定してください。「グローバルフィールドの値の設定」を参照してください。