实际开发接口交给前端调用
三、实际开发接口交给前端调用
3.1后端封装get接口
@CrossOrigin
@GetMapping(value = "/users_num", name = "返回注册用户数目")
public String return_users_num(@RequestParam(value = "name", required = false) String name) {
int users_num=data_getter.get_users_num();
return String.format("%s", users_num == 0 ? "None" : users_num);
}
3.2后端封装post接口
@CrossOrigin
@PostMapping("/delete_user")
public String save(@RequestParam("code") String code){
String errcode=data_deleter.delete_users(code);
System.out.println(errcode);
return "删除成功";
}
3.3前端调用get接口
import axios from 'axios'
export const get_users_num = () => {
return axios.get( 'http://localhost:8880/data/users_num')
}
3.4前端调用post接口
import axios from 'axios'
import Qs from "qs";
export const delete_user = (user_code) => {
const data = Qs.stringify({code:user_code});
return axios.post('http://localhost:8880/data/delete_user',data);
}
3.5接口封装上传到linux
双击package自动封装,生成一个jar包
然后直接上上传到服务器,执行
java -jar 对应jar包的名字
接下来前端就可以通过http://ip:port访问了
个人总结
1.跨域问题:
有很多种解决方法,这个选择简单粗暴的直接注解 @CrossOrigin
参考:SpringBoot解决跨域问题的六种方式
2.前端post请求时有两种参数封装方法
1、URLSearchParams()类
// 两种方式
const params = new URLSearchParams();
params.append('param1', 'value1');
params.append('param2', 'value2');
2、qs转换
import Qs from "qs";
const data = qs.stringify({name:'zhangsan'}))
3.封装时报错
3.1一般问题
看看报错的依赖的版本,一般这样能解决
比如我的就是Gson的版本问题
3.2上面的没用的话
实在不行,可以点击下面的按钮,关闭测试模块
4.Spring创建的时候get到了一个项目分层知识点
我这里只用到了Controller和Service层
5.1 初学Springboot分层
5.各分层含义
- controller:编写后端提供前端的接口。
- dao:与在mapper中Mybatis的xml中,sql语句相互形成映射关系,一般为对应实体类简单数据库操作的接口。
- entity:主要放实体类Bean。
- service:业务层,编写复杂的服务功能,例如:复杂的数据库操作等。
- impl:整合service和dao层内容,提供后端完整接口调用。
- mapper:放Mybatis的xml文件。
5.记得给服务器的端口开安全组配置
谨记!!!