gpt4 book ai didi

javascript - 我如何从网络服务中调用网络服务

转载 作者:行者123 更新时间:2023-11-29 23:19:16 25 4
gpt4 key购买 nike

我真的是 REST 世界的新手,或者实际上是 Java 的 WebApp 方面的新手,所以请不要介意这是一个愚蠢的问题。我有一个网页,按下按钮将调用以下 JS 函数:

function testFunction(){
$(document).ready(function() {
$.ajax({
url: "http://localhost:8080/test/webapi/myresource",
type: 'get',
success: function (data) {
console.log(data)
}
});
});
}

上面的 url 由我自己的 Web 服务(在 java 中)处理,即上面的 GET 将调用以下 Web 服务:

@Path("myresource")
public class MyResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String getIt() {
return "Got it!";
}}

我想在这里做的不是返回“知道了”,而是想调用另一个涉及外部 rest 调用的 javascript 函数(专用于处理服务器类型的请求),例如:

        function externalResource() {
$(document).ready(function() {
$.ajax({
url: "any_external_rest_call",
type: 'get',
dataType: 'json',
success: function (data) {
document.getElementById('demo').innerHTML = "Perfect"
}
});
});
}

我想将数据从 externalResource 函数返回到 getIt(),最后返回到 testFuntion(),我知道这是可能的,但无法在网上找到很多细节。如果有人可以向我澄清这一点,那将非常有帮助。

最佳答案

您不能从 Java 中的 REST 方法调用 JavaScript 代码。但是,您可以使用 javax.ws.rs.client 包的 ClientBuilder

您的方法可能如下所示:

@Path("myresource")
public class MyResource {

@GET
@Produces(MediaType.TEXT_PLAIN)
public String getIt() {

client = ClientBuilder.newClient();
target = client.target("http://api.anotherRestService.com/details/")

return target.request(MediaType.APPLICATION_JSON)
.get();
}
}

这只是一个例子,我没有在真实环境中尝试过,但你可以这样做。现在,您可以使用 JS 方法 testFunction 调用 Java 后端的 REST 方法。在您的 REST 方法 getIt 中,您使用创建的客户端调用另一个休息服务。第二次 rest 调用的结果返回给您的 JS 方法 testFunction

关于javascript - 我如何从网络服务中调用网络服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51364757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com