ヘッドレスプラットフォームとしてのLiferayの使用
Liferayでは、Webインターフェイスで利用可能なアクションと同じ種類のアクションを実行する一連のAPIを提供しています。 これは、モバイルアプリケーション、カスタムWebアプリケーション、自動化されたプロセスの作成など、機械可読形式でデータを取得する必要がある場合に不可欠です。 すぐに使用できるインターフェイスよりも多くの労力を要しますが、仕事を進める上でさらに強力な機能が備わっています。
接続する方法
クライアントがWeb APIを介してLiferay DXPに接続するには、3つの異なるアプローチがあります。
- ヘッドレスREST API、OpenAPI仕様に準拠
- GraphQL API はGraphQL仕様に準拠しています
- プレーンWeb/RESTサービス、サービスビルダーによって生成されます
ヘッドレスREST API
Liferay のヘッドレス API を使用すると、Liferay DXP リソースとの RESTful 対話が可能になります。 これらの API は、REST インターフェースの標準を定義する OpenAPI 仕様に準拠しており、より簡単に実装および使用できます。
これらの API の詳細情報を表示するには、ブラウザを使用して、 [server]:[port]/o/api (例: http://localhost:8080/o/api) にある Liferay の API Explorer にアクセスします。 または、コマンド ラインで cURL を使用して完全なリストにアクセスします。 以下に例を示します。
curl \
"http://localhost:8080/o/api" \
-u "test@liferay.com:learn"
最も関連性の高いドキュメントは、 [server]:[port]/o/[api-name]/[api-version]/openapi.[yaml or json] にも生の形式で用意されています。 ドキュメントは SwaggerHubでも入手できますが、以前のバージョンを実行している場合は一致しない可能性があります。
すべての API の OpenAPI 仕様を表示するには、ブラウザを使用して [server]:[port]/o/api?endpoint=[server]:[port]/o/openapi/openapi.jsonにアクセスします。 (例: http://localhost:8080/o/api?endpoint=http://localhost:8080/o/openapi/openapi.json)。 または、cURL を使用して、完全なリストを JSON 形式または YAML 形式でダウンロードします。 以下に例を示します。
curl \
"http://localhost:8080/o/openapi/openapi.json" \
-o "openapi.json" \
-u "test@liferay.com:learn"
curl \
"http://localhost:8080/o/openapi/openapi.yaml" \
-o "openapi.yaml" \
-u "test@liferay.com:learn"
この完全な openapi.[json|yaml] ファイルのダウンロードは、Liferay DXP 7.4 U69/Liferay Portal 7.4 GA69 以降で利用できます。
GraphQL API
GraphQL APIは、ヘッドレスREST APIと同様のインタラクションをサポートするクエリ言語ですが、若干柔軟性が高いものです。 Liferay DXPは[server][:port]/o/graphqlでこのAPIを公開しています。
詳細な情報は、 GraphQL クライアントを通じて API またはそのドキュメントを調べることで見つかります。 Liferayには組み込みクライアントが含まれており、[server][:port]/o/api(右上のGraphQLを選択)で実行中のインスタンスで確認できます。
プレーンWeb / RESTサービス
LiferayのWebサービスは古いフレームワークの一部であり、DXPで引き続きサポートされていますが、複雑なヘッドレス操作には推奨されなくなりました。 これらのAPIは、Liferay DXPの内部動作と密接に関連しているため、新しいヘッドレスオプションが提供するパワーと柔軟性に欠けています。
ただし、Webサービスは、特定のタスクを実行するためのより簡単な方法を提供する場合があります。 使用方法については、 サービス ビルダー Web サービス を参照してください。
機能
任意のクライアントと連携する
LiferayのヘッドレスAPIはWeb経由でデータを提供するため、Web呼び出しを行うことができるすべてのアプリケーションがクライアントとして機能できます。 これらのAPIは、デフォルトでJSONコンテンツで応答しますが、XMLもネイティブでサポートしています。 拡張機能によって、必要に応じて他の方法でコンテンツを提供できます。 詳細については、 API ヘッダー リファレンス を参照してください。
安全に接続する
LiferayのWebインターフェイスと同様に、ヘッドレスAPIを介したすべてのインタラクションは、特定のユーザーアカウントを使用して(またはゲストとして)行われます。 LiferayのAPIは、基本認証、OAuthトークン、Cookieの3つの認証方法をサポートしています。 これを実現する方法については、 API ヘッダー リファレンス を参照してください。 ゲストとして API リクエストを行うこともできます。詳細については、 認証されていないリクエストを行う を参照してください。
データサイズを管理しやすくする
大量のデータセットを伴う作業では、処理するクライアントに負荷がかかる場合があります。パフォーマンスの問題はユーザーにとってストレスのたまるものであり、人件費も高額になる可能性があります。 LiferayのヘッドレスAPIでは、コレクションを管理可能なチャンクに分割し、必要なデータを正確に取得する方法を提供します。
リクエストの中でpageとpageSizeパラメーターを渡すことで、一度にどれだけの情報が欲しいのか、また特定のリクエストでどの情報のサブセットが欲しいのかを API に伝えることができます。 sortパラメーターは、ページングされた応答と組み合わせても効果的であり、どの要素を最初に返すかを指定できます。
searchパラメーターはキーワード検索を実行し、エントリの任意の部分にそのキーワードを含む要素を生成します。 filterパラメーターは同様の検索を実行しますが、エントリのどこにコンテンツを含める必要があるかを正確に指定します。
fieldsパラメーターは、応答の各要素に特定のフィールドのみを列挙するように要求し、逆にrestrictFieldsパラメーターは、指定されたフィールドが返されないようにします。
flattenパラメーターは、階層APIの場合、階層コンテキストからリクエストを実行します。 これにより、たとえば、関連する組織を見つけるために組織図をトラバースする必要がなく、「マーケティング」と呼ばれる組織で検索を実行できます。
これらのパラメータの使用方法の詳細については、 API ヘッダー リファレンスを参照してください。