1. 程式人生 > >Liferay6.2:JSON Web Services Invocation Examples - JSON Web Services呼叫示例

Liferay6.2:JSON Web Services Invocation Examples - JSON Web Services呼叫示例

文章目錄

JSON Web Services Invocation Examples - JSON Web Services呼叫示例

本教程提供了通過JavaScript,URL和cURL呼叫Liferay的JSON Web服務的示例。 每個呼叫方法都使用相同的兩個示例(getting a user 和 adding a user),以便你可以瞭解它們之間的差異。 本教程還包括使用JavaScript從portlet呼叫Liferay的JSON Web服務的示例。

Loading AlloyUI - 載入AlloyUI

Liferay網頁使用AlloyUI JavaScript框架。 為每個Liferay頁面建立的JavaScript物件是Liferay物件。 該物件包括一個Servicefunction,可用於呼叫Liferay的API。 要通過Liferay.Service(…)呼叫Liferay Web service,你的JavaScript context必須包含AlloyUI JavaScript框架。 Liferay 6.2使用AlloyUI 2.0.x. 如果你正在使用JSP,則可以載入AlloyUI taglib並將JavaScript程式碼包裝在<aui:script>標籤中。 這是必需的匯入程式碼:

<%@ taglib uri="http://alloy.liferay.com/tld/aui" prefix="aui" %>

要載入特定的AUI modules,請通過use屬性指定它們。 (預設情況下,<aui:script>標記包含基本AUI module。)例如,要使用AUI node和eventmodule,請將程式碼包裝為:

<aui:script use="node, event">
    // Liferay service invocation here
</aui:script>

如果不在JSP中工作,則無法訪問taglib。 在這種情況下,可以手動建立AUI context。 例如,使用以下HTML片段載入AUI seed(種子)和CSS檔案:

<script src="http://cdn.alloyui.com/2.0.0/aui/aui-min.js"></script>
<link href="http://cdn.alloyui.com/2.0.0/aui-css/css/bootstrap.min.css" rel="stylesheet"></link>

然後你可以這樣建立AUI context:

AUI().use('aui-base', function(A){
    // Liferay service invocation here
});

現在你可以準備呼叫Liferay的JSON web service了。

Get User JSON Web Service Invocation via JavaScript - 通過JavaScript呼叫獲取user的JSON Web Service

讓我們在JavaScript中測試一個簡單的JSON Web service 呼叫:

Liferay.Service(
    '/user/get-user-by-email-address`,
    {
        companyId: Liferay.ThemeDisplay.getCompanyId(),
        emailAddress: '[email protected]`
    },
    function(obj) {
        console.log(obj);
    }
);

如果執行此程式碼,則 [email protected]使用者(JSON物件)將記錄到JavaScript控制檯。

Liferay.Service() 函式有三個引數:

  1. 表示要呼叫服務的字串
  2. 一個引數物件
  3. 回撥函式

回撥函式將服務呼叫的結果作為引數。