Wiki APIの基本
LiferayのHeadless Deliveryアプリケーションは、 Wiki アプリケーションにRESTサービスを提供します。 これらのサービスを使用すると、Wikiノードとページを追加したり、それらの情報を一覧表示したり、コンテンツを変更したり、完全に削除したりできます。 ここでは、cURLコマンドとJavaクラスを使用してこれらのサービスを呼び出します。
チュートリアルリソースの準備
チュートリアルに進む前に、まずクリーンなLiferay Dockerコンテナをセットアップし、提供されたチュートリアルコードを使用できるように準備します。
Liferay Dockerコンテナ
新しいLiferay インスタンスを起動し、以下を実行します。
http://localhost:8080でLiferayへのサインインします。 メールアドレス test@liferay.com とパスワード test を使用してください。 プロンプトが表示されたら、パスワードを learn に変更します。
開始したら、Site IDを取得します。 サイトIDを見つけるには、 サイトメニュー()を開き、 [Configuration] → [Site Settings] → [Site Configuration] に移動します。
チュートリアルコード
このチュートリアルでは、Headless APIを示すサンプルコードを提供します。 このコードには、チュートリアル全体で使用するためのサンプルのcURLファイルとJavaファイルの両方が含まれています。
次のコマンドを実行して、 サンプルコード をダウンロードして解凍します。
cURLスクリプトを使用する準備ができたら、実行する前にJavaソースファイルを手動でコンパイルする必要があります。 これを行うには、プロジェクトの java
フォルダーに行き、javac
コマンドを実行する。
このプロジェクトには com.liferay.headless.delivery.client.jar
ファイルが依存関係として含まれていることに注意してください。 すべての REST アプリケーションのクライアント JAR 依存情報は、インストー ルの API エクスプローラーの /o/api
にある。
提供されるコードには WikiNode
と WikiPage
サービスの API が含まれている。 含まれているサンプルAPIの一覧は、 Tutorial Code Reference をご参照ください。
提供されるコードは、デモのために基本認証を使用しています。 本番環境では、 OAuth2 でユーザーを認証する必要があります。
サンプルWikiNodeのAPIを呼び出す
この演習では、WikiNode
APIを呼び出すためにcURLコマンドまたはJavaクラスのいずれかを使用することができます。 次の出力例はcURLコマンドに対応しており、提供されているJavaクラスの出力とは少し異なります。
-
liferay-q8u2
プロジェクトのcurl
またはjava
フォルダに移動します。cURLの場合
Javaの場合
-
サイトIDをパラメータとして
WikiNode_POST_ToSite
を実行します。 これにより、指定したサイトに新しいWikiノードが作成されます。cURLの場合
Javaの場合
ターミナルには、新しく作成されたWikiノードの完全なスキーマが表示されます。 提供されるAPIコールは、新しいノードの
description
フィールドとname
フィールドのみを定義する。 -
ノードのIDをコピーして、以下のGET、PUT、DELETEメソッドで使用します。
-
パラメータにサイトIDを使用して
WikiNodes_GET_FromSite
を実行します。 これにより、指定したサイト内のすべてのWikiノードのリストが返されます。cURLの場合
Javaの場合
noteすべてのDXP/ポータルインスタンスには、
Main
と呼ばれるデフォルトのWikiノードが付属しています。 このノードは、作成したノードとともに上記の出力に表示されます。 -
Wiki ノード ID をパラメータとして
WikiNode_PUT_ById
を実行する。 これにより、指定されたWikiノードの詳細がAPI呼び出しで提供された詳細に置き換えられます。cURLの場合
Javaの場合
-
同じ Wiki ノード ID をパラメータとして
WikiNode_DELETE_ById
を実行します。 これにより、指定したノードが削除されます。cURLの場合
Javaの場合
-
同じ Wiki ノード ID をパラメータとして
WikiNode_GET_ById
を実行します。 これにより、指定されたノードが存在する場合はその詳細が返されます。cURLの場合
Javaの場合
前の手順でノードを削除したため、次のメッセージが返されます。
サンプルWikiPageのAPIを呼び出す
WikiPage`のAPIを呼び出すには、cURLコマンドかJavaクラスを使用します。 次の出力例はcURLコマンドに対応しており、提供されているJavaクラスの出力とは少し異なります。
-
liferay-q8u2
プロジェクトのcurl
またはjava
フォルダに移動します。cURLの場合
Javaの場合
-
WikiNode_POST_ToSite
を実行して、Wikiページのノードを作成します。cURLの場合
Javaの場合
noteWikiページはWikiノードに保存されるため、Wikiページを作成する前に少なくとも1つのノードが存在する必要があります。
-
WikiPage_POST_ToNode
コールで使用するために、ノードのIDを出力からコピーします。 -
上記のノードIDをパラメータとして
WikiPage_POST_ToNode
を実行する。 これにより、指定したノードの新しいWikiページが作成されます。cURLの場合
Javaの場合
-
WikiPage_POST_ToParent
呼び出しで使用するためにページのIDをコピーします。 -
上記のWikiページIDをパラメータとして
WikiPage_POST_ToParent
を実行する。 これにより、指定したWikiページの子ページが作成されます。cURLの場合
Javaの場合
-
Wiki ノード ID をパラメータとして
WikiPages_GET_FromNode
を実行する。 これにより、指定したノードに追加されたすべてのWikiページのリストが返されます。これには、新しく作成された両方のWikiページが含まれます。cURLの場合
Javaの場合
-
Wiki の親ページ ID をパラメータとして
WikiPages_GET_FromParent
を実行します。 これにより、指定したWikiページの既存の子ページが返されます。cURLの場合
Javaの場合
-
上記のいずれかのWikiページIDをパラメータとして
WikiPage_PUT_ById
を実行する。 これにより、元のページのコンテンツがAPI呼び出しで定義されたコンテンツに置き換えられます。cURLの場合
Javaの場合
-
WikiページIDをパラメータとして
WikiPage_DELETE_ById
を実行する。 これにより、指定したWikiページが削除されます。cURLの場合
Javaの場合
-
削除された Wiki ページの ID をパラメータとして
WikiPage_GET_ById
を実行する。 これにより、指定されたページが存在する場合はその詳細が返されます。cURLの場合
Javaの場合
前の手順でページが削除されたため、次のメッセージが表示されます。
チュートリアルコードのリファレンス
提供されているサンプルコードには、以下の WikiNode
と WikiPage
API 用の cURL スクリプトと Java クラスが含まれています。
WikiNodeのサンプルAPI
サービス | HTTP メソッド | HTTPエンドポイント | 説明 |
---|---|---|---|
WikiNode | POST | /v1.0/sites/[siteId]/wiki-nodes | API呼び出しで提供された詳細を使用して、指定されたサイトに新規Wikiノードを作成します |
WikiNode | GET | /v1.0/sites/[siteId]/wiki-nodes | 指定されたサイト内のすべてのWikiノードの完全なリストを返します。結果に対して、ページ分割、絞り込み、検索、およびソートをすることができます |
WikiNode | GET | /v1.0/wiki-nodes/[wikiNodeId] | 指定されたノードエンティティの詳細を返します |
WikiNode | PUT | /v1.0/wiki-nodes/[wikiNodeId] | 指定されたノードの詳細をAPI呼び出しで提供されたものに置き換えます |
WikiNode | DELETE | /v1.0/wiki-nodes/[wikiNodeId] | 指定されたノードを削除し、操作が成功した場合**は204を返します |
WikiPageのサンプルAPI
サービス | HTTP メソッド | HTTPエンドポイント | 説明 |
---|---|---|---|
WikiPage | POST | /v1.0/wiki-nodes/[wikiNodeId]/wiki-pages | API呼び出しで提供された詳細を使用して、指定されたノードに新しいWikiページを作成します |
WikiPage | POST | /v1.0/wiki-pages/[parentWikiPageId]/wiki-pages | API呼び出しで提供された詳細を使用して、指定されたWikiページの新しいWiki子ページを作成します。 |
WikiPage | GET | /v1.0/wiki-nodes/[wikiNodeId]/wiki-pages | 指定されたWikiノードに追加されたすべてのWikiページの完全なリストを返します。結果に対して、ページ分割、絞り込み、検索、およびソートをすることができます |
WikiPage | GET | /v1.0/wiki-pages/[parentWikiPageId]/wiki-pages | 指定されたWikiページに追加されたすべてのWiki子ページの完全なリストを返します。結果に対して、ページ分割、絞り込み、検索、およびソートすることができます |
WikiPage | GET | /v1.0/wiki-pages/[wikiPageId] | 指定されたWikiページエンティティの詳細を返します |
WikiPage | PUT | /v1.0/wiki-pages/[wikiPageId] | 指定されたページの詳細をAPI呼び出しで提供されたものに置き換えます |
WikiPage | DELETE | /v1.0/wiki-pages/[wikiPageId] | 指定されたページを削除し、操作が成功した場合**は204を返します |
WikiページにPOSTメソッドとPUTメソッドを使用する場合、 headline
フィールドと encodingFormat
フィールドの両方を定義する必要があります。headline
フィールドはページのメインタイトルを設定し、encodingFormat
フィールドはページのメディアフォーマット(HTML、BBCodeなど)を決定します。
サンプルのcURLスクリプトの検証
以下は、チュートリアルのcURLコマンドの代表的な例です。
WikiPage_POST_ToNode.sh
WikiPages_GET_FromNode.sh
サンプルのJavaクラスの検証
以下は、チュートリアルのJavaコマンドの代表的な例です。