Consuming APIs
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

APIクエリパラメーター

REST API を使用する場合でも、 GraphQL APIを使用する場合でも、応答をフィルター処理するのに役立つさまざまなクエリ パラメータを使用できます。

フィールドパラメーター

このパラメータは、指定されたフィールドのみを指定して返す場合に使用します。 例えば、countries APIにクエリを実行して、2文字の国コードと国名だけを返します。

REST APIの例

cURLリクエスト:

curl \
	"http://localhost:8080/o/headless-admin-address/v1.0/countries?fields=a2,name" \
	-u "test@liferay.com:learn"

GraphQL APIの例

GraphQLリクエスト:

query {
   countries {
      actions
      items {
         a2
         name
      }
      lastPage
      page
      pageSize
      totalCount
   }
}

JSON応答:

{
   "actions": {},
   "facets": [],
   "items": [
      {
         "a2": "CD",
         "name": "democratic-republic-of-congo"
      },
      {
         "a2": "ML",
         "name": "mali"
      },
      {
         "a2": "BV",
         "name": "bouvet-island"
      },
      {
         "a2": "UY",
         "name": "uruguay"
      },
      {
         "a2": "SB",
         "name": "solomon-islands"
      },
      {
         "a2": "LT",
         "name": "lithuania"
      },
      {
         "a2": "LV",
         "name": "latvia"
      },
      {
         "a2": "KN",
         "name": "st-kitts"
      },
      {
         "a2": "MD",
         "name": "moldova"
      },
      {
         "a2": "IO",
         "name": "british-indian-ocean-territory"
      },
      {
         "a2": "NP",
         "name": "nepal"
      },
      {
         "a2": "SC",
         "name": "seychelles"
      },
      {
         "a2": "PH",
         "name": "philippines"
      },
      {
         "a2": "AO",
         "name": "angola"
      },
      {
         "a2": "MT",
         "name": "malta"
      },
      {
         "a2": "SL",
         "name": "sierra-leone"
      },
      {
         "a2": "PT",
         "name": "portugal"
      },
      {
         "a2": "GG",
         "name": "guernsey"
      },
      {
         "a2": "DM",
         "name": "dominica"
      },
      {
         "a2": "NF",
         "name": "norfolk-island"
      }
   ],
   "lastPage": 13,
   "page": 1,
   "pageSize": 20,
   "totalCount": 247
}

フィルターパラメーター

filterパラメーターを使用すると、APIエンドポイントのレスポンスをフィルタリングできます。 例えば、ブログ記投稿をタイトルでフィルタリングできます(例: headline eq 'Able')。

警告

Headless API 経由でコンテンツをフィルタリングする場合、パブリック カテゴリ のみが含まれます。 内部カテゴリと外部カテゴリは別々にインデックス付けされるため、内部カテゴリはフィルター結果から除外されます。

キーワードとしてインデックスされたフィールドのみがフィルタリングをサポートします。 テキスト フィールドでコンテンツを検索するには、代わりに 検索 パラメータを使用します。 API のパラメータを検出するには、 API エクスプローラー を使用します。

カスタム オブジェクトをフィルタリングするには、Liferay DXP 2025.Q1+/Portal GA132+ が必要です。 完全な ObjectEntry クラス名を使用し、オブジェクトの名前を taskItemDelegateName パラメータに含めることを忘れないでください。

REST APIの例

cURLリクエスト:

curl \
	"http://localhost:8080/o/headless-delivery/v1.0/sites/20121/blog-postings?fields=articleBody,headline&filter=headline%20eq%20%27Able%27" \
	-u "test@liferay.com:learn"

GraphQL APIの例

GraphQLリクエスト:

query {
   blogPostings(filter: "headline eq 'Able'", siteKey: "20121") {
      page
      items {
         articleBody
         headline
      }
   }
}

JSON応答:

"data": {
   "blogPostings": {
      "page": 1,
      "items": [
      {
         "articleBody": "<p>Able able able</p>",
         "headline": "Able"
      }
      ]
   }
}

フィルタリングには、さまざまな演算子を使用できます。

比較演算子

演算子説明
eq等しいaddressLocality eq 'Redmond'
eqnullに等しいaddressLocality eq null
ne等しくないaddressLocality ne 'London'
neヌルではないaddressLocality ne null
gt次の値より大きいprice gt 20
ge以上price ge 10
lt次の値より小さいdateCreated lt 2018-02-13T12:33:12Z
le以下dateCreated le 2012-05-29T09:13:28Z

論理演算子

演算子説明
andロジカルでprice le 200 and price gt 3.5
orロジカルまたはprice le 3.5 or price gt 200
notロジカルでないnot (price le 3.5)

notの演算子の後にスペース文字が必要です。

グループ化演算子

演算子説明
( )優先グループ化(price eq 5) or (addressLocality eq 'London')

文字列関数

関数説明
containsが以下を含むcontains(title,'edmon')
startswith次で開始startswith(addressLocality, 'Lond')

ラムダ演算子

ラムダ演算子は、コレクションフィールド(例えば、リソースの キーワード)に対してブール値式を評価します。 コレクションを識別するためのナビゲーションパスを先頭に追加する必要があります。

ラムダ演算子説明
any任意keywords/any(k:contains(k,'news'))

any 演算子は、各コレクション要素にブール値式を適用し、いずれかの要素に対して式がtrueであれば true と評価します。

演算子の組み合わせとODataの構文

構文の例とその他の演算子の組み合わせについては、 OData 標準リファレンスで説明されています。

パラメーターのフラット化

このパラメータを使用して、親ユーザー グループとそれぞれの子ユーザー グループの取得など、階層構造内の項目を取得します。 たとえば、Raylife Global はさまざまな地域の Raylife 組織の親組織として機能します。

REST APIの例

cURLリクエスト:

curl \
	"http://localhost:8080/o/headless-admin-user/v1.0/organizations?fields=id,name&flatten=true" \
	-u "test@liferay.com:learn"

GraphQL APIの例

GraphQLリクエスト:

query {
   organizations(flatten: true) {
      actions
      items {
         id
         name
      }
      lastPage
      page
      pageSize
      totalCount
   }
}

JSON応答:

{
   "actions": {
      // Actions data...
   },
   "facets": [],
   "items": [
      {
         "id": "46367",
         "name": "Raylife APAC"
      },
      {
         "id": "46372",
         "name": "Raylife EMEA"
      },
      {
         "id": "46377",
         "name": "Raylife LATAM"
      },
      {
         "id": "46382",
         "name": "Raylife NA"
      },
      {
         "id": "46616",
         "name": "Raylife Global"
      }
   ],
   "lastPage": 1,
   "page": 1,
   "pageSize": 20,
   "totalCount": 5
}

ページおよびページサイズパラメーター

これらのパラメータを使用して、どの項目のサブセットを返すかを指定します。 page パラメータは、利用可能なすべてのページのうち、どのページを返すかを指定します。 pageSizeパラメーターは、ページごとに必要な項目数を指定します。 例えば、 pageSize=10page=22 (つまり項目の22ページ目)について、countries APIにクエリを実行します。

REST APIの例

cURLリクエスト:

curl \
	"http://localhost:8080/o/headless-admin-address/v1.0/countries?fields=a2,name&page=22&pageSize=10" \
	-u "test@liferay.com:learn"

GraphQL APIの例

GraphQLリクエスト:

query {
   countries(page: 22, pageSize: 10) {
      actions
      items {
         a2
         name
      }
      lastPage
      page
      pageSize
      totalCount
   }
}

JSON応答:

{
   "actions": {},
   "facets": [],
   "items": [
      {
         "a2": "KG",
         "name": "kyrgyzstan"
      },
      {
         "a2": "RE",
         "name": "reunion-island"
      },
      {
         "a2": "CK",
         "name": "cook-islands"
      },
      {
         "a2": "ER",
         "name": "eritrea"
      },
      {
         "a2": "GE",
         "name": "georgia"
      },
      {
         "a2": "MW",
         "name": "malawi"
      },
      {
         "a2": "CO",
         "name": "colombia"
      },
      {
         "a2": "GW",
         "name": "guinea-bissau"
      },
      {
         "a2": "SN",
         "name": "senegal"
      },
      {
         "a2": "TW",
         "name": "taiwan"
      }
   ],
   "lastPage": 25,
   "page": 22,
   "pageSize": 10,
   "totalCount": 247
}

検索パラメーター

このパラメータを使用して、検索語で項目を絞り込みます。 例えば、 unitedという検索語について、countries API を検索します。

REST APIの例

cURLリクエスト:

curl \
	"http://localhost:8080/o/headless-admin-address/v1.0/countries?fields=a2,name&search=united" \
	-u "test@liferay.com:learn"

GraphQL APIの例

GraphQLリクエスト:

query {
   countries(search: "united") {
      actions
      items {
         a2
         name
      }
      lastPage
      page
      pageSize
      totalCount
   }
}

JSON応答:

{
   "actions": {},
   "facets": [],
   "items": [
      {
         "a2": "GB",
         "name": "united-kingdom"
      },
      {
         "a2": "US",
         "name": "united-states"
      },
      {
         "a2": "UM",
         "name": "united-states-minor-outlying-islands"
      },
      {
         "a2": "VI",
         "name": "united-states-virgin-islands"
      },
      {
         "a2": "AE",
         "name": "united-arab-emirates"
      }
   ],
   "lastPage": 1,
   "page": 1,
   "pageSize": 20,
   "totalCount": 5
}

ソートパラメーター

sortパラメーターを使用して、APIエンドポイントの応答を昇順(asc)または降順(desc)にソートすることができます。 API のパラメータを検出するには、 API エクスプローラー を使用します。

複数のパラメーターでソートする場合は、パラメーター名をカンマで区切り、重要度で並べます。 例えば、最初にタイトルで、次に作成日でソートするには、sort=title,dataCreatedをリクエストに追加します。

1つのパラメーターにのみ降順を指定する場合、他のパラメーターには明示的に昇順のソート順(:asc)を指定する必要があります。 例えば、sort=headline:desc,dateCreated:ascです。

以下の例では、countries API応答を名前の降順でソートしています。

REST APIの例

cURLリクエスト:

curl \
	"http://localhost:8080/o/headless-admin-address/v1.0/countries?fields=a2,name&sort=name:desc" \
	-u "test@liferay.com:learn"

GraphQL APIの例

GraphQLリクエスト:

query {
   countries(sort: "name:desc") {
      actions
      items {
         a2
         name
      }
      lastPage
      page
      pageSize
      totalCount
   }
}

JSON応答:

{
   "actions": {},
   "facets": [],
   "items": [
      {
         "a2": "ZW",
         "name": "zimbabwe"
      },
      {
         "a2": "ZM",
         "name": "zambia"
      },
      {
         "a2": "YE",
         "name": "yemen"
      },
      {
         "a2": "WS",
         "name": "western-samoa"
      },
      {
         "a2": "EH",
         "name": "western-sahara"
      },
      {
         "a2": "WF",
         "name": "wallis-futuna"
      },
      {
         "a2": "VN",
         "name": "vietnam"
      },
      {
         "a2": "VE",
         "name": "venezuela"
      },
      {
         "a2": "VA",
         "name": "vatican-city"
      },
      {
         "a2": "VU",
         "name": "vanuatu"
      },
      {
         "a2": "UZ",
         "name": "uzbekistan"
      },
      {
         "a2": "UY",
         "name": "uruguay"
      },
      {
         "a2": "VI",
         "name": "united-states-virgin-islands"
      },
      {
         "a2": "UM",
         "name": "united-states-minor-outlying-islands"
      },
      {
         "a2": "US",
         "name": "united-states"
      },
      {
         "a2": "GB",
         "name": "united-kingdom"
      },
      {
         "a2": "AE",
         "name": "united-arab-emirates"
      },
      {
         "a2": "UA",
         "name": "ukraine"
      },
      {
         "a2": "UG",
         "name": "uganda"
      },
      {
         "a2": "TV",
         "name": "tuvalu"
      }
   ],
   "lastPage": 13,
   "page": 1,
   "pageSize": 20,
   "totalCount": 247
}

Liferay DXP 2024.Q3+/ポータル GA125+

オブジェクト API は、関連オブジェクトのフィールドを使用してエントリを並べ替えることをサポートし、データ取得の柔軟性を高めます。

これは、1 対多および多対 1 の関係を持つカスタム オブジェクトで実行できます。 並べ替えは、テキスト、長いテキスト、日付、日付と時刻、整数、長い整数、小数、精度小数、ブール値、選択リストなど、さまざまなフィールド タイプで実行できます。

作成者、作成日、外部参照コード、ID、変更日、ステータスなどのシステム フィールドもサポートされています。

関連オブジェクトの並べ替え構文は次のパターンに従います。

sort=relatedRelationship/fieldName:asc

関係を連鎖させることで、複数の関連オブジェクトのフィールドで並べ替えることもできます。

sort=relatedRelationship1/relatedRelationship2/fieldName:desc

別のカスタム オブジェクト Universityと多対 1 の関係を持つカスタム オブジェクト Student があるとします。 学生を universityName で昇順に並べ替えるには、次のコマンドを使用します。

curl \
	"http://localhost:8080/o/c/students?sort=universityEnrolled/universityName:asc" \
	--header "Accept: application/json" \
	--user "test@liferay.com:learn"

このコマンドでは、 universityEnrolled は各学生に関連付けられた大学を表す関係です。 universityName は、学生のエントリを並べ替える基準となる University オブジェクト内のフィールドです。 :asc は、昇順で並べ替えることを指定します。

JSON 応答は次のようになります。

{
...
    "taxonomyCategoryBriefs" : [ ],
    "universityEnrolledERC" : "029520e6-d34d-5140-9bc5-b81f5ae29f9d",
    "r_universityEnrolled_c_universityId" : 31963,
    "r_universityEnrolled_c_universityERC" : "029520e6-d34d-5140-9bc5-b81f5ae29f9d",
    "studentName" : "August"
...
    "taxonomyCategoryBriefs" : [ ],
    "universityEnrolledERC" : "62e78f42-1596-8f11-beb5-4b34e719b8a9",
    "r_universityEnrolled_c_universityId" : 31955,
    "r_universityEnrolled_c_universityERC" : "62e78f42-1596-8f11-beb5-4b34e719b8a9",
    "studentName" : "Nathaly"
...
    "taxonomyCategoryBriefs" : [ ],
    "universityEnrolledERC" : "62e78f42-1596-8f11-beb5-4b34e719b8a9",
    "r_universityEnrolled_c_universityId" : 31955,
    "r_universityEnrolled_c_universityERC" : "62e78f42-1596-8f11-beb5-4b34e719b8a9",
    "studentName" : "Luke"
...
    "taxonomyCategoryBriefs" : [ ],
    "universityEnrolledERC" : "d29da38c-1adf-4aba-1129-463d8f4e6b50",
    "r_universityEnrolled_c_universityId" : 31961,
    "r_universityEnrolled_c_universityERC" : "d29da38c-1adf-4aba-1129-463d8f4e6b50",
    "studentName" : "Peter"
...
    "taxonomyCategoryBriefs" : [ ],
    "universityEnrolledERC" : "d0ce2764-6804-8de8-ff9f-4b199867dc4f",
    "r_universityEnrolled_c_universityId" : 31957,
    "r_universityEnrolled_c_universityERC" : "d0ce2764-6804-8de8-ff9f-4b199867dc4f",
    "studentName" : "Larissa"
...
    "taxonomyCategoryBriefs" : [ ],
    "universityEnrolledERC" : "2ff3dc43-a871-8eed-6204-5c7ef0302e7a",
    "r_universityEnrolled_c_universityId" : 31959,
    "r_universityEnrolled_c_universityERC" : "2ff3dc43-a871-8eed-6204-5c7ef0302e7a",
    "studentName" : "Manu"
...
}

universityName フィールドは返されませんが、エントリは大学名に対応するマップされた r_universityEnrolled_c_universityId 値に基づいてアルファベット順に並べ替えられます。

大学ID大学名
31963カリフォルニア工科大学
31955ハーバード
31961マサチューセッツ工科大学
31957オックスフォード
31959スタンフォード