Liferay の開発では、Client Extensions により、Liferay の外で動かして API で連携する方式が使えます。このページでは、開発の入口となる概念を整理します。本サイトは Liferay Inc. とは無関係の非公式ガイドです。
ここがポイント
迷ったら、まず Objects でデータを作り、Client Extensions で見た目やロジックを足す、という順で考えるのが入りやすいです。提供形態(SaaS / PaaS / Self-Hosted)で使える手段が変わる点に注意してください。
迷ったら、まず Objects でデータを作り、Client Extensions で見た目やロジックを足す、という順で考えるのが入りやすいです。提供形態(SaaS / PaaS / Self-Hosted)で使える手段が変わる点に注意してください。
Client Extensions の 4 種
Client Extensions は、Liferay の外で動き、API を通じて連携する拡張の仕組みです。種類は 4 つあります。
| 種類 | ざっくりした役割(一般的な説明) |
|---|---|
| frontend | 画面側の拡張(UI の追加など) |
| configuration | 設定を成果物として管理・配備する |
| microservice | 外部で動くサービス側の処理 |
| batch | データの一括登録などの処理 |
各種類の細かい仕様は公式の Client Extensions のページで確認してください。
Objects から REST が自動生成される
Objects を公開(Publish)すると、REST エンドポイントが自動生成されます。独自の Java コードを書かずに、データの登録・取得 API が手に入ります。簡単な業務データならこれで足りる場合があります。
ここがポイント
API の細かな仕様(パス、認証)はバージョンや環境で変わり得ます。実際の確認は、自分の環境の API エクスプローラー等や公式ドキュメントで行ってください。
API の細かな仕様(パス、認証)はバージョンや環境で変わり得ます。実際の確認は、自分の環境の API エクスプローラー等や公式ドキュメントで行ってください。
REST Builder と SaaS の制限
REST Builder は、独自の REST API を作るための仕組みです。ただし OSGi モジュールとして配備する必要があり、SaaS では使えません。
注意
SaaS で独自 API が必要な場合は、Client Extensions(microservice など)や Objects の自動生成 API で組み立てる方向になります。ロードマップには「API Builder」が Next として載っています。
SaaS で独自 API が必要な場合は、Client Extensions(microservice など)や Objects の自動生成 API で組み立てる方向になります。ロードマップには「API Builder」が Next として載っています。
SaaS / PaaS / Self-Hosted の違い
| 形態 | 運用の範囲 | 拡張方法 |
|---|---|---|
| SaaS | Liferay が全スタック、アップグレード、パッチを運用 | Client Extensions 前提。OSGi カスタマイズ不可。マルチテナント |
| PaaS | Liferay が Web サーバー、DB、検索、バックアップ、CI/CD を用意。DXP のアップグレードとパッチは利用者の責任 | Client Extensions と OSGi |
| Self-Hosted | 利用者が自前で運用 | Client Extensions と OSGi |
- SaaS では Groovy スクリプトやサーバー管理ができません。
- SaaS の Remote Staging は使えず、Publications で代替します。
- SaaS の API は、1ユーザーあたり1時間5,000回の上限があります。
Jakarta 移行
Jakarta EE 10 への移行(javax から jakarta)は 2026.Q1 で完了したとされています。OSGi モジュールを自作している Self-Hosted / PaaS の開発者は、依存ライブラリやインポートの見直しが必要になる場合があります。
- Blade CLI のツールで大半を自動化できるという第三者情報があります(公式では未確認)。
- 2026.Q3 では Metal-CLI と Soy の Gradle プラグインが削除されました。
- JDK は 21 が基準で、17 は deprecated です。詳細は動作要件を参照してください。
2026.Q3 の Fragment API 変更
2026.Q3 では Fragment API が抽象型になり、BasicFragment と FormFragment に分かれました。破壊的変更として案内されています。
注意
自作の Fragment 関連コードがある場合は、アップグレード前に公式の 2026.Q3 Breaking Changes で影響を確認してください。ほかにも、FreeMarker / Velocity で propsUtil や portletConfig が既定で制限されるなどの変更があります。
自作の Fragment 関連コードがある場合は、アップグレード前に公式の 2026.Q3 Breaking Changes で影響を確認してください。ほかにも、FreeMarker / Velocity で propsUtil や portletConfig が既定で制限されるなどの変更があります。
最初の一歩
- Dockerで手元に環境を用意する。
- Objects で簡単なデータ構造を作り、生成された REST を呼ぶ。
- 必要に応じて Client Extensions を追加する。
- 自分の提供形態で使える手段を、公式で確認する。
出典
- Client Extensions
- Liferay SaaS Compatibility Matrix
- Liferay Deployment Options
- 2026.Q3 Breaking Changes
- Liferay Roadmap
- Liferay DXP 2026.Q3 Compatibility Matrix
最終確認日: 2026年10月15日(内容は変わる可能性があります。必ず公式情報も確認してください)