2015-11-24 25 views
-1

我需要了解AEM中Apache Sling的概念。 AEM文檔說Apache Sling可以描述爲REST風格的Web框架,Apache Sling是REST風格的框架,可通過http協議訪問java內容存儲庫。Apache Sling如何在CQ/AEM中用作RESTful Web框架?

我用sling api來訪問JCR節點/屬性。我真的不知道在這裏使用寧靜的地方。任何人都可以告訴我們,Apache Sling是如何在CQ/AEM中用作REST風格的Web框架的?

回答

1

您是否閱讀過Apache Sling的文檔?或者你的問題到底是什麼? 無論如何,Sling是與JCR一起爲CQ開發的。然後兩者都提交給Apache(Jackrabbit作爲JCR的參考實現)。 Sling是RESTful,因爲它不使用會話(創作時除外)提供存儲在JCR中的內容。它使用主要的HTTP協議,主要是GET和POST,但也可以使用PUT和DELETE。您可以使用所謂的選擇器和擴展來爲相同的內容提供不同的視圖。最常見的是HTML,JSON和XML。

1

我明白這一點,調用一個框架RESTful是有點延伸。如果框架允許您遵循REST的定義約束,則可以使用框架構建RESTful應用程序。同時,無論框架如何,都有可能違反它們。因此,無論您的工具如何「RESTful」,您最終都會得到與REST無關的應用程序。

在吊索的情況下,您可以輕鬆創建一個Servlet,指定它應該使用GET方法,並對其進行修改版本庫的狀態,違反了基本的HTTP協議的語義。

我認爲它們在您引用的Adobe文檔中的含義是默認的servlet的行爲方式與HTTP一致,the way Thomas explained in his answer

但是,與底層協議一致似乎不足以調用API RESTful。舉例來說,我實在不明白吊帶(孤立地考慮)如何使用HATEOAS超文本作爲應用程序狀態的引擎)。 You need to drive the application state using hypermedia。它使我更有意義,如果我們用CRXDE,它提供了超媒體控件資源處理一起考慮吊帶。

至於AEM本身,我看到了a presentation earlier this year by none other than Roy Fielding himself about REST in AEM,他提出的觀點是AEM是RESTful,因爲它可以像網站一樣使用。

  • 這通航
  • 它使用超文本(由瀏覽器解釋),作爲應用程序狀態的發動機
  • 操縱資源通過表示的交換
  • 訪問方法(如由底層協議定義,HTTP在這種情況下)對於所有資源具有相同的語義。

這是有效的一個網站,你可以使用內容管理(及以上)。客戶端(瀏覽器)只需轉到歡迎頁面並遵循超鏈接,就可以使用它,解釋按需檢索的代碼,無需進行帶外通信(如閱讀文檔,手動構建URL和等)

請介意這個答案是我自己的我在AEM和吊帶文檔和Roy Fielding的帖子和演示文稿,它是絕不贊同或由Adobe或羅伊菲爾丁親自批准查到的資料解釋;)

+0

downvoter不僅歡迎評論和幫助改善這個答案。 – toniedzwiedz

相關問題