为Java/Spring RESTful服务创建客户机

为Java/Spring RESTful服务创建客户机,java,ajax,spring,rest,curl,Java,Ajax,Spring,Rest,Curl,我开发了Java/springrestful服务,它在cURL请求上返回JSON。例如,如果我提供cURL请求,例如 curl -G http://localhost:8080/rest/wallets | json 我得到了请求的回复 [ { "name": "Puut", "address": "mv7eLe6vva4SJ96tZiczd1XPYiUxgUudAX" }, { "name": "Rool", "address": "n4W2zC6

我开发了
Java/springrestful
服务,它在
cURL
请求上返回
JSON
。例如,如果我提供
cURL
请求,例如

curl -G http://localhost:8080/rest/wallets | json
我得到了请求的回复

[
  {
    "name": "Puut",
    "address": "mv7eLe6vva4SJ96tZiczd1XPYiUxgUudAX"
  },
  {
    "name": "Rool",
    "address": "n4W2zC6WE98SAAnKEJoatvELnbiLeVFZFf"
  },
  {
    "name": "Ouup",
    "address": "mj5DZbgngdK2Wnz4Q7Gv2UGYRyGSYnuhG6"
  }
]
我把密码放在电脑里了

@RestController
@RequestMapping("/rest")
public class WalletRestController {

    @Autowired
    private WalletService walletService;

    @Autowired
    private UserService userService;

    @RequestMapping(value = "/wallets", method = RequestMethod.GET)
    public ResponseEntity<List<WalletInfoWrapper>> getAllWalletInfo() {

        List<WalletInfo> walletInfos = walletService.getAllWallets();

        if (Objects.isNull(walletInfos)) {
            return new ResponseEntity<List<WalletInfoWrapper>>(HttpStatus.NO_CONTENT);
        }

        List<WalletInfoWrapper> walletInfoWrappers = new ArrayList<>();

        // hiding the entity ids for the security purposes
        walletInfos.forEach(w -> walletInfoWrappers.add(new WalletInfoWrapper(w.getName(), w.getAddress())));

        return new ResponseEntity<List<WalletInfoWrapper>>(walletInfoWrappers, HttpStatus.OK);
    }

    // some code 

}
我在中看到了一个例子,但是,我需要知道在创建HTML页面之后,我是否需要编写一个控制器来调用它,或者做些什么?e、 g

@Controller
public class MyClass{

      @RequestMapping(value = "/", method= RequestMethod.GET)
      public String showHome(){
            retrurn "home.html";
      }
}

一些带有
Ajax
请求的示例代码片段将帮助我入门。如何做到这一点?

这是使用ajax的代码示例。它显示了如何调用rest控制器。端口可以根据您的配置而有所不同。但tomcat通常使用8080端口

<script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
$.ajax({
    type: 'GET',
    url: 'http://localhost:8080/rest/wallets',
    data: '',
    success: function (responseData) {

            console.log(JSON.stringify(responseData));
    },
    complete: function (textStatus) {

    },
    error: function (responseData)
    {
    }
});

$.ajax({
键入:“GET”,
网址:'http://localhost:8080/rest/wallets',
数据:“”,
成功:功能(responseData){
log(JSON.stringify(responseData));
},
完成:功能(文本状态){
},
错误:函数(响应数据)
{
}
});
@Artin,正如您在评论中要求的完整html示例,因此我给您一个想法。我没有关于你的下拉列表的任何信息

更新:


Rest服务调用示例
函数getData(){
$.ajax({
键入:“GET”,
/*如果您需要一些基本的身份验证,那么还需要包括它。
“访问控制允许来源”用于CORS问题*/
/*标题:{
“授权”:“基本*******”,
“访问控制允许来源”:“*”
},*/
网址:'http://localhost:8080/rest/wallets',
/*由于您不发送任何数据,因此数据将为空*/
数据:“”,
成功:功能(responseData){
log(JSON.stringify(responseData));
$('#result').html(JSON.stringify(responseData))
},
完成:功能(文本状态){
},
错误:函数(响应数据)
{
}
});
}
来自服务器的数据:


这是使用ajax的代码示例。它显示了如何调用rest控制器。端口可以根据您的配置而有所不同。但tomcat通常使用8080端口

<script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
$.ajax({
    type: 'GET',
    url: 'http://localhost:8080/rest/wallets',
    data: '',
    success: function (responseData) {

            console.log(JSON.stringify(responseData));
    },
    complete: function (textStatus) {

    },
    error: function (responseData)
    {
    }
});

$.ajax({
键入:“GET”,
网址:'http://localhost:8080/rest/wallets',
数据:“”,
成功:功能(responseData){
log(JSON.stringify(responseData));
},
完成:功能(文本状态){
},
错误:函数(响应数据)
{
}
});
@Artin,正如您在评论中要求的完整html示例,因此我给您一个想法。我没有关于你的下拉列表的任何信息

更新:


Rest服务调用示例
函数getData(){
$.ajax({
键入:“GET”,
/*如果您需要一些基本的身份验证,那么还需要包括它。
“访问控制允许来源”用于CORS问题*/
/*标题:{
“授权”:“基本*******”,
“访问控制允许来源”:“*”
},*/
网址:'http://localhost:8080/rest/wallets',
/*由于您不发送任何数据,因此数据将为空*/
数据:“”,
成功:功能(responseData){
log(JSON.stringify(responseData));
$('#result').html(JSON.stringify(responseData))
},
完成:功能(文本状态){
},
错误:函数(响应数据)
{
}
});
}
来自服务器的数据:

使用JQuery:

$.ajax({
   url: 'wallets',
   data: 'myAnyParameterIfNeeded=parameterValue',
   success : function(response) {
                var results = JSON.parse(response);
                // here you can use for loop for iterating into *results*
                var rowOneName = JSON.stringify(results[0]['name']);
           }
   error : function(e){
               alert('HTTP error number=' + e.status);
           }
})
使用JQuery:

$.ajax({
   url: 'wallets',
   data: 'myAnyParameterIfNeeded=parameterValue',
   success : function(response) {
                var results = JSON.parse(response);
                // here you can use for loop for iterating into *results*
                var rowOneName = JSON.stringify(results[0]['name']);
           }
   error : function(e){
               alert('HTTP error number=' + e.status);
           }
})


您可以使用jQuery get/post方法。你试过这个吗:我更新了问题。我可以按照要求使用
Ajax
,不需要控制器-就像你可以从
curl
调用一样,你也可以从
jquery.Ajax
调用一样,我很困惑。你能用代码样本写一个答案吗?运行
tomcat
后,我应该将登录页放在哪里,或者如何访问登录页?您可以使用jQuery get/post方法。你试过这个吗:我更新了问题。我可以按照要求使用
Ajax
,不需要控制器-就像你可以从
curl
调用一样,你也可以从
jquery.Ajax
调用一样,我很困惑。你能用代码样本写一个答案吗?运行
tomcat
后,我应该将登录页放在哪里或如何访问它?运行tomcat后,我应该将登录页放在哪里或如何访问它?我是否需要一个
控制器
来访问登录页?您可以将其放入
home.jsp
中。好的,我是否需要一个控制器来调用
home.jsp
?假设您有一个名为
home.jsp
的页面。这里有一个显示数据的按钮。要加载此视图[例如
home.jsp
],您应该编写一个控制器。在我的例子中,我使用了
ModelAndView
从controller加载视图。@Artin,视图非常大。对于demo/POC的目的,您可以直接使用jQuery直接考虑普通代码<代码> HTML >代码(如AtAUR拉赫曼MunNA所使用的)。这可以通过在浏览器中启动
html
页面来运行。您可以在/页上免费托管此简单应用程序。如果您更喜欢
AWS
,则可以使用
s3
静态网站托管功能部署此html页面。在更广泛的层面上,您可以考虑使用JS或JS框架来开发客户端应用程序?我是否需要一个
控制器
来访问登录页?您可以将其放入
home.jsp
中。好的,我是否需要一个控制器来调用
home.jsp
?假设您有一个名为
home.jsp
的页面。这里有一个显示数据的按钮。要加载此视图[例如
home.jsp
],您应该编写一个控制器。在我的例子中,我使用了
ModelAndView
从controller加载视图。@Artin,视图非常大。对于demo/POC的目的,您可以直接使用jQuery直接考虑普通代码<代码> HTML >代码(如AtAUR拉赫曼MunNA所使用的)。这可以通过在浏览器中启动
html
页面来运行。您可以在/页上托管此简单应用程序