2017-01-26 5 views
1

Adob​​e aemバンドルを作成しました。私はそれを穏やかなウェブサービスとして公開したいと思います。どうすればいいのですか?私は、サードパーティのレストサービスを利用する説明があるが、自分のAEMバンドルをレストサービスとして公開する方法については十分な情報がないことがわかります。Adob​​e AEMバンドルを快適なWeb​​サービスとして公開

+0

なぜRESTサービスとしてバンドルを公開するのですか?あなたはSlingサーブレットではできないことを達成しようとしていますか? –

答えて

1

適切なREST APIを公開することは、独自の課題です。私はここにそれに住むつもりはないので、ウェブ上に多くの優れた素材があります。 RESTとHATEOASのためだけにgoogle。書籍Leonard RichardsonとMichael AmundsenのRESTful Web APIもこの問題について非常にうまく説明しています。

つまり、AEMバンドルをRESTサービスとして公開するのはどういう意味なのかよく分かりませんが、おそらくかなりの設計作業が必要になるでしょう。

OSGiバンドルは(私はそれはあなたがAEMバンドル(原文の意味するものだと仮定し!))潜在的にOSGiのサービス、利用可能な方法の別のセットで、それぞれの数を公開することができます。

OSGiサービス(基本的にOSGi環境内の他のコンポーネントによって呼び出される一連のJavaメソッドである独自のAPIを使用)とRESTfulなWebサービス(ハイパーメディア駆動API HTTP経由で利用可能)、両方のタイプのサービスの設計上の制約は全く異なります。 は、RESTful Webサービスを使用してOSGiサービスを公開することはできません。

RESTful Web APIを設計して、それを所有するOSGiバンドルにバックアップする必要があります。

この方法の1つは、Sling Servletsの番号を作成することです。これらのサーブレットは、それ自体がOSGiコンポーネントであるため、バンドルがすでに公開しているOSGiサービスを取り込むことができます。

私はあなたのAPIが何をすべきか知る方法がありませんが、コンテンツリポジトリにデータを格納する場合は、Sling自身がRESTの原則に基づいて構築されていることに注意してください。あなたが達成したいことは、OOTB servlets and appropriately composed forms(ハイパーメディアコントロール)を使用してもよいでしょう。

1

AEMは、サーブレットを介して安心のエンドポイントを公開するアーキテクチャコンセプトのRESTの上に構築されています。 SlingAllMethodsServlet(つまり、GETまたはPOSTを受け入れるSlingサーブレット)

RESTリクエストを実行できる他のクライアントから、AEMにRESTリクエストを送信することができます。これは、GET/POSTメソッドのようなデフォルトのSlingServletを使用するか、 (GETまたはPOSTを実行して、AEMサーブレットを呼び出します)。

例えばデフォルトをスリングGETサーブレットを用いてOOTBコンテンツのJSON表現が

に基づいて子レベル(深さ量)とあなたのJSON形式でコンテンツをレンダリングするURL以下によって見ることができるに
http://localhost:4502/cf#/content/geometrixx-outdoors/en/men/coats.json 
http://localhost:4502/content/geometrixx-outdoors/en/men/coats.1.json 

クライアント側から、これらのサーブレットをAJAX、JAVA SWINGアプリケーション、HTTPフォーム・ポストなどのように呼び出す方法は複数あります。

いくつかの例を以下の記事に示します。

@SlingServlet(paths = "/bin/pagesutils/importservlet", methods = "POST") 

も宣言: AJAX CALL TO SERVLETUSING .net call to AEMUsing AEM POST CALL

〜あなたはあなたの中にサーブレットのパッケージの下コアプロジェクトをクラスを作成する場合、それは

0

をホープ、あなたは注釈を使用してRESTfulなサービスを定義することができますメソッドとパス。 ディスパッチャ設定でサーブレットのパスを許可することを忘れないでください。

関連する問題