api概念
一种:某个软件系统将自己的功能通过打包然后发给另一个软件系统使用,这种叫SDK
一种:某个软件或者系统通过对外暴露接口(请求映射),然后其他的软件直接调用该接口然后使用功能,这种叫应用接口
前后端分离模式
先来说一下传统的开发模式,前端写好页面,后端拿过来需要改成模板,然后进行调试,后端如果是发现问题需要把问题返给前端,然后前端在进行修改,之后再返回给后端,这样浪费时间,浪费人力
传统的开发模式代码耦合性太高,出现bug改的话很麻烦,前端需要安装一套后端的开发工具来调试,要是后端更换了一套语言,前端还得跟着去换
前后端分离就会很好的避开上述问题,前后端分离不只是一种开发模式还是一种Web应用的框架模式,开发阶段的时候前后端只要约定好的数据接口,然后进行调试即可
有很多的有点:责任分离,开发过程中无需等待,大大缩短了开发的时间,提高效率,增强代码可维护性
前后端分离,浏览器发送请求,前端进行接收,前端就是纯静态服务器,然后发送异步请求给后端,后端属于纯接口服务器,只要负责逻辑的操作,然后将数据用JSON格式发送给前端,Ajax异步请求获取数据列表,通过jQuery里的方法渲染到浏览器
当然,后端既然是一个接口服务器,那说明像是app,或者是小程序都可以去调用
restful是设计api的模式(风格),约束了代码的格式,提供了统一的api书写格式,这种模式简单易懂
restful风格的接口
请求路径–一般是复数
请求方式–get.put.post.delete
请求参数–根据需求而定
请求返回参数–根据需求而定
参数路径:employees/{id}
路径参数:{id}
不同的书写格式,一般用第二种,只需要核心的数据用路径参数
@RequestMapping(value = "/employees/{id}/{name}",method = RequestMethod.GET)
@ResponseBody
private Employee employee(@PathVariable Long id,@PathVariable String name){
return new Employee(id,"ben",12);
}
//路径请求:http://localhost:8080/employees/1/ben
@RequestMapping(value = "/employees/{id}",method = RequestMethod.GET)
@ResponseBody
private Employee employee2(@PathVariable Long id,String name){
return new Employee(id,"ben",12);
}
//路径请求:http://localhost:8080/employees/1?name=ben
@RequestMapping(value = "/employees",method = RequestMethod.GET)
@R