Nuxeoは非常に強力なREST APIを提供していますが、ご存知のように、HTTPリクエスト、ヘッダー、およびサーバーの更新を処理するには、困難な作業が必要です。この困難な作業をより簡単にするために、Nuxeoはお客様が選択した言語用に以下のようなRESTクライアントを提供しています:
- Nuxeo JavaScript Client
- Nuxeo PHP Client
- Nuxeo Python Client
- Nuxeo .Net Client
- Nuxeo Dart Client
- Nuxeo Java Client
特定のNuxeo Serverバージョンで動作するようにJavaクライアントを開発しました。たとえば、Nuxeo LTS 2015用に1.x
、Nuxeo LTS 2016用に2.x
をリリースし、Nuxeo LTS 2017用に3.x
のリリースを予定していました。
Nuxeoでは、常にユーザーの作業が楽になるように努めております。プロセスが長すぎて退屈に見えることがあるため、ユーザーは重要なアップグレードを遅らせることがあります。このことを念頭に置いて、私たちはアップグレードプロセスを迅速かつ容易にするという目標のもと、Javaクライアント全体を3.x
バージョン用に修正しました。
Nuxeo Java Client 3.0.0はLTS 2015から始まるすべてのNuxeoサーバーで動作し、リリース候補初版(RC1)が現在公開されていることを嬉しく思います。
これに伴い、次のような優れた機能も導入しました。
NuxeoClient
をインスタンス化する際に、Nuxeo Serverへの接続が成功したかどうかを確認するテストDocument#properties
とDocument#contextParameters
を適切なオブジェクトに逆シリアル化するInputStream
からブロブをアップロードする- 構成マネージャのエンドポイント
- マネージャ間の構成分離
このクライアントと上記の新機能の使用方法を簡単に見てみましょう。
###ステップ1:クライアントを作成します。
NuxeoClient client = new NuxeoClient.Builder().url("http://localhost:8080/nuxeo")
.authentication("Administrator", "Administrator")
.schemas("*")
.connect();
このステップでは、Nuxeo Serverへのリクエストを処理できるクライアントが用意されています。
ドキュメントを作成してみましょう(クライアントは新しいNuxeoサーバーに接続されているものとします)。
Document aFolder = Document.createWithName("aFolder", "Folder");
Document aFile = Document.createWithName("aFile", "File");
client.repository().createDocumentByPath("/", aFolder);
client.repository().createDocumentByPath("/aFolder", aFile);
###ステップ2:パンくずリストを記したaFile
文書を取得します。
aFile = client.repository().enrichersForDocument("breadcrumb").fetchDocumentByPath("/aFolder/aFile");
// get the breadcrumb from context parameters
Documents breadcrumb = aFile.getContextParameter("breadcrumb");
aFolder = breadcrumb.getDocument(0);
aFile = breadcrumb.getDocument(1);
ここでは、構成分離とコンテキストパラメータの逆シリアル化のメリットがあります。クライアントからマネージャを得るたびに、クライアントの構成で初期化された独自の構成コンテキストを持つ新しいマネージャが生成されます。したがって、この例では、「パンくず」エンリッチャーはaFile
の取得に対してのみ設定されます。さらに、Nuxeoサーバーによって「パンくず」がドキュメント
としてシリアル化されるので、クライアントはドキュメント
にそれを逆シリアル化することができます。
その他の例については、ここでご覧ください。
早速お試しください!皆さんのご意見をお待ちしております。最終版は10月にリリースされます。ご期待ください!