MobileFirst - 调用Java SQL适配器适配器过程

时间:2015-04-15 17:03:34

标签: ibm-mobilefirst mobilefirst-adapters

我正在关注MobileFirst Platform 7的Java SQL Adapter教程。

我正在尝试使用userId =“bjones”获取用户,但我不知道如何将params {userId}设置到过程/adapters/UserAdapter/{userId}中。

function loadUsers(){
  busyIndicator.show();

  var resourceRequest = new WLResourceRequest("/adapters/UserAdapter/", WLResourceRequest.GET);
  resourceRequest.setQueryParameter("userId", "bjones");
  resourceRequest.send().then(
        loadUsersSuccess,
        loadUsersFailure
);}

function loadUsersSuccess(result){
  WL.Logger.debug("Feed retrieve success");
  busyIndicator.hide();
  WL.Logger.debug(JSON.stringify(result));
  if (result.responseJSON.length>0) 
    displayFeeds(result.responseJSON);
  else 
    loadUsersFailure();}

function loadUsersFailure(result){
  WL.Logger.error("Feed retrieve failure");
  busyIndicator.hide();
  WL.SimpleDialog.show("Banking Application", "Service not available. Try again later.", 
        [{
            text : 'Reload',
            handler : WL.Client.reloadApp 
        },
        {
            text: 'Close',
            handler : function() {}
        }]
    );}

我的要求是

  

本地主机:10080 / JavaAdapters /适配器/ UserAdapter /用户id = bjones

但JSON响应包含存储在我的数据库中的所有用户 Image for response

此外,REST调用类型@PUT如何使用Path param“userId”和body params:“firstName”,“lastName”,“password”,以便更新用户

2 个答案:

答案 0 :(得分:1)

从教程中,适配器端点为/{userId},这意味着userId不是查询参数,但它是URL的一部分。您需要更新loadUsers功能,以便在网址末尾添加userId,因此在您的示例中,完整路径为/adapters/UserAdapter/bjones

function loadUsers(){
  busyIndicator.show();

  var usedId = "bjones";

  var resourceRequest = new WLResourceRequest("/adapters/UserAdapter/"+userId, WLResourceRequest.GET);
  resourceRequest.send().then(loadUsersSuccess,loadUsersFailure);

}

<强>更新

function loadUsersSuccess(result) {
  WL.Logger.debug("Feed retrieve success");
  busyIndicator.hide();
  WL.Logger.debug(JSON.stringify(result));
  // if responseJSON is not null user data was returned
  if (result.responseJSON != null) {
    displayFeeds(result.responseJSON);
  } else{
    loadUsersFailure();
  }
}

答案 1 :(得分:1)

基本上有两种带参数的URL: 1.路径参数:  /适配器/ UserAdapter /用户/ {用户id} 2.查询参数:  /适配器/ UserAdapter /用户?用户id = {} userId的

带有查询参数的java适配器:

    series: {
        stack: true,
        bars: {
            show: true,
            align: 'center',
            barWidth: 0.5,
            lineWidth: 0,
            fillColor: {
                colors: [{
                    opacity: 1.0
                }, {
                    opacity: 1.0
                }]
            }
        }
    }

带路径参数的java适配器:

@GET
@Produces("application/json")
@OAuthSecurity(enabled = false)
@Path("/users")

public String getuserById(@QueryParam("userID") String userId)

{
           System.out.println(userId);
}

我希望,第二个例子在java适配器中回答你的问题。