使用不同的参数调用 REST WS



从ajax前端调用REST WS时,我有一个基本的疑问。我从ajax调用WS为:

url: self.GET_GOAL_VIEW_URL + '?userEmail=' + eMail,

或作为:

url: self.GET_GOAL_VIEW_URL,

现在,在显式传递 userEmail 参数的情况下,我需要在后端服务代码中使用 userEmail,但如果调用中没有 userEmail,我需要使用另一个参数,称为 userId,该参数由代理添加到调用中。

所以我不知道如何编写 WS API,以便它根据 ajax 请求中使用的参数来采用这个参数或那个参数。感谢您在这方面的帮助。

您可以将参数作为查询参数或正文参数传递。 您还没有提到您将在后端使用哪个 REST 框架,因此假设您将使用 jersey,代码应如下所示:

使用查询参数:

@POST
@Path("/somepath")
public Response doSomething(@QueryParam("userEmail") String userEmail, @QueryParam("userId") String userId) {
if(userEmail != null && !userEmail.equals("")) {
//use email address
} else if(userId != null && !userId.equals("")) {
//use user id
} else {
throw new RuntimeException()
}
}

带身体参数:

@POST
@Path("/somepath")
public Response doSomething(userDTO user) {
if(user.getUserEmail() != null && !user.getUserEmail().equals("")) {
//use email address
} else if(user.getUserId() != null && !user.getUserId().equals("")) {
//use user id
} else {
throw new RuntimeException()
}
}

当然,您需要指定要返回的内容类型,并根据需要更改方法类型。

相关内容

  • 没有找到相关文章

最新更新