API接口设计
一、实验目的
1掌握Spring MVC原理。
2.掌握接口设计原理。
3.掌握JSON格式的输出方法。
二、实验原理
获取用户请求,分派给对应的控制器中的方法,按要求处理数据,以JSON格式输出。
三、实验设备与器件
PC机和相关软件。
四、实验内容
设计一个API以JSON格式返回数据。返回数据:
{"area":[{"name":"江西","value":100},{"name":"湖南","value":200}],
"data":{"name":"张三","id":1},
"message":"success",
"timestamp":"123313132",
"status":200}
五、实验步骤
1.统一接口类R
package com.myboot.boot2022.controller.utils;
import lombok.Data;
@Data
public class R {
private Boolean flag;
private Object data;
private String msg;
public R(){};
public R(Boolean flag){this.flag=flag;}
public R(Boolean flag,Object data)
{this.flag=flag;this.data=data;}
public R(String msg)
{this.flag=false;this.msg=msg;}
}
2.控制器代码
@RestController
public class mycontroller {
@GetMapping("/testRESTfulAPI")
public HashMap<String, Object> testRESTfulAPI() {
HashMap<String, Object> map = new HashMap<>();
HashMap<String, Object> data = new HashMap<>();
data.put("id",1);
data.put("name","张三");
List<Area> areaList = new ArrayList<>();
Area area = new Area();
area.setName("江西");
area.setValue(100);
Area area2 = new Area();
area2.setName("湖南");
area2.setValue(200);
areaList.add(area);
areaList.add(area2);
map.put("timestamp","123313132");
map.put("message","success");
map.put("status", 200);
map.put("data", data);
map.put("area",areaList);
return map;
}
@RequestMapping("/getdata")
public HashMap<String, Object> getdata(){
HashMap<String, Object> map = new HashMap<>();
List<Users> usersList=userDao.selectList(null);
map.put("data",usersList);
map.put("timestamp",(int) (System.currentTimeMillis() / 1000));
map.put("message","success");
map.put("status", 200);
return map;
}
3.前端获取并解析数据
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Restful Test</title>
<script type="text/javascript" src="./js/jquery-3.2.1.min.js"></script>
</head>
<body>
testRestApi</br>
<a id="timestamp"></a></br>
<a id="message"></a></br>
<a id="status"></a></br>
<a id="data"></a></br>
<a id="area"></a></br>
</body>
<script>
$(function () {
$.ajax({
url:"../info/testRESTfulAPI",
dataType:"json",
type:"get",
success:function (data) {
console.log(data);
$("#timestamp").html("timestamp:"+data.timestamp);
$("#message").html("message:"+data.message);
$("#status").html("status:"+data.status);
$("#data").html("data: id="+data.data.id+" name="+data.data.name);
$("#area").html("area[0]: name="+data.area[0].name+" value="+data.area[0].value);
}
})
});
</script>
</html>
至此实验完成。
六、实验报告要求
实验报告应包含以下内容:本次实验项目的、内容、需要的实验条件、实验步骤、操作过程和实验结果。可以对关键性的实验步骤及实验现象作出分析,也可以对本次实验操作方法与内容作进一步改革与扩充的设想等。
注意:实验报告不必写出所有代码或脚本,只写核心部分。

