-1

我正在关注 MobileFirst Platform 7 的Java SQL 适配器教程。

我正在尝试使用 userId = "bjones" 获取用户,但我不知道如何将参数设置{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/?userId=bjones

但 JSON 响应包含存储在我的数据库中的所有用户 图像以供响应

此外,REST 调用类型怎么样@PUT,使用路径参数“userId”和主体参数:“firstName”、“lastName”、“password”,以便更新用户

4

2 回答 2

1

在本教程中,适配器端点是/{userId}这意味着userId它不是查询参数,但它是 url 的一部分。您需要更新您的loadUsers函数,以便它userId在 url 的末尾附加,因此在您的示例中,完整路径将是/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();
  }
}
于 2015-04-15T17:41:32.400 回答
1

基本上有两种带参数的 URL: 1. 路径参数:/adapters/UserAdapter/users/{userId} 2. 查询参数:/adapters/UserAdapter/users?userId={userId}

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

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

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

{
           System.out.println(userId);
}

带路径参数的 java 适配器:

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

public String getuserById(@PathParam("userId") String userId)

{
           System.out.println(userId);
} 

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

于 2015-05-15T09:19:31.783 回答