前端使用Ajax请求后台RESTful规范的API接口

HTTP动词对应操作
POST新增信息
GET获取信息
PUT更新信息
DELETE删除信息

一、POST-----新增信息

1. 后台接口

@PostMapping(value = "/save")
public String save(@RequestBody(required = true) Emp emp){
	System.err.println(emp.toString());
	// 将数据信息存库
	empService.saveEmp(emp);
	return "Object Save to DB!!!";
}

使用@PostMapping注解,则表示必须用POST方式才能请求该接口;

使用@RequestBody注解,则代表请求该接口时的入参,必须是JSON格式的数据;

2. ajax请求

		var parms = {"id": "1008","name":"小白"};
		$.ajax({
			url:'/save',
			data: JSON.stringify(parms),
			type:'POST',
			dataType:'text',// 返回数据类型,因为后台返回的不是json格式的数据,所以如果这里使用json,则前台控制台打印的会是2,而不是1;
			contentType:"application/json;charset=UTF-8",
			success:function(data) {
				console.log(1)
			},
			error:function(data) {
				console.log(2)
			}
		})

由于后台接口使用了@PostMapping注解,所以ajax中的type属性必须是POST;

由于后台接口使用了@RequestBody注解,所以ajax的data必须是json格式的,所以需要用JSON.stringify()将数据转换为json格式的字符串;

同时需要指定contentType为"application/json;charset=UTF-8",因为默认的是’application/x-www-form-urlencoded;charset=UTF-8’;

二、GET-----获取信息

1. 后台接口

@GetMapping(value = "/restful/{id}/{orderindex}")
public String info(@PathVariable(required = true) String id, @PathVariable(required = true) long orderindex){
	BoTaskPlan boTaskPlan = new BoTaskPlan();
	boTaskPlan.setId(id);
	boTaskPlan.setOrderindex(orderindex);
	BoTaskPlan bo = this.service.getOne(boTaskPlan);
	return bo.toString();
}

使用@GetMapping注解,则表示必须用GET方式才能请求该接口;

使用@PathVariable注解,则代表请求该接口时的入参在URI上(URI就是URL除了http和域名或IP端口之外的后面那一截);

2. ajax请求

		var id = "22311";
		var orderindex = "7";
		$.ajax({
			url:'/restful/' + id + "/" + orderindex,
			type:'GET',
			dataType:'json',
			contentType:"application/json;charset=UTF-8",
			success:function(data) {
				console.log(1)
			},
			error:function(data) {
				console.log(2)
			}
		})

由于后台接口使用了@GetMapping注解,所以ajax中的type属性必须是GET;

由于后台使用了@PathVariable注解,所以参数直接放到URL的"/"后,而不是像以前放在?后面;

三、PUT-----更新信息

1. 后台代码

@PutMapping(value = "/restful")
public String update(@RequestBody(required = true) BoTaskPlan bo){   // 使用@PathVariable获取{XXX}中的XXX变量值
	// 更新数据
	service.updateById(bo);
	// 查询数据
	bo = service.getOne(bo.getId());
	return bo.toString();
}

使用@PutMapping注解,则表示必须用PUT方式才能请求该接口;

由于后台接口使用了@RequestBody注解,所以ajax的data必须是json格式的,所以需要用JSON.stringify()将数据转换为json格式的字符串;

2. ajax请求

		var arr = {"createuser":"sa","id":"22311"};
		$.ajax({
			url:'/restful',
			data: JSON.stringify(arr),
			type:'PUT',
			dataType:'json',	
			contentType:"application/json;charset=UTF-8",
			success:function(data) {
				console.log(1)
			},
			error:function(data) {
				console.log(2)
			}
		})

由于后台接口使用了@PutMapping注解,所以ajax中的type属性必须是PUT;

由于后台使用了@RequestBody,所以ajax的data必须是json字符串

四、DELETE-----删除信息

1. 后台代码

@DeleteMapping(value = "/restful/{id}")
public String delete(@PathVariable(required = true) String id){   // 使用@PathVariable获取{XXX}中的XXX变量值
	// 删除信息
	service.deleteById(id);
	// 查询所有信息
	List<BoTaskPlan> list = service.getAll();
	return list.toString();
}

使用@DeleteMapping注解,则表示必须用DELETE方式才能请求该接口;

使用@PathVariable注解,则代表请求该接口时的入参在URI上(URI就是URL除了http和域名或IP端口之外的后面那一截);

2. ajax请求

		$.ajax({
			url:'/restful/22311',
			type:'DELETE',
			dataType:'json',	
			contentType:"application/json;charset=UTF-8",
			success:function(data) {
				console.log(1)
			},
			error:function(data) {
				console.log(2)
			}
		})

由于后台接口使用了@DeleteMapping注解,所以ajax中的type属性必须是DELETE;

由于后台使用了@PathVariable注解,所以参数直接放到URL的"/"后,而不是像以前放在?后面;

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要点击前端按钮调用Spring Boot后台接口,通常可以使用以下步骤: 1. 在前端代码中定义一个按钮,例如使用HTML中的<button>标签。 2. 给按钮添加一个点击事件监听器,例如使用JavaScript中的addEventListener()方法。 3. 在点击事件监听器中编写代码,使用Ajax等技术向后台发送请求,例如: ``` $.ajax({ url: "/api/example", type: "GET", success: function(data) { console.log(data); }, error: function(jqXHR, textStatus, errorThrown) { console.log(textStatus, errorThrown); } }); ``` 其中,url指定后台接口的地址,type指定HTTP请求的类型,success和error分别处理请求成功和失败的情况。 4. 在后台接口中接收请求并进行处理,例如使用Spring Boot中的@RestController注解定义一个RESTful API,例如: ``` @RestController @RequestMapping("/api") public class ExampleController { @GetMapping("/example") public String example() { return "Hello World!"; } } ``` 其中,@GetMapping指定HTTP请求的类型和路径,example()方法返回一个字符串作为响应。 5. 将处理结果返回给前端,通常可以使用JSON格式的数据,例如: ``` @RestController @RequestMapping("/api") public class ExampleController { @GetMapping("/example") public Map<String, Object> example() { Map<String, Object> result = new HashMap<>(); result.put("message", "Hello World!"); return result; } } ``` 其中,Map<String, Object>定义一个键值对,表示响应数据,message键对应的值为"Hello World!"。 具体实现方式可以根据具体情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值