为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
页面来运行。您可以在/页上托管此简单应用程序