第二周,GIN入门
1.入门
首先最简单的直接抄袭官网的快速开始,常见的三步。1.定义server的断开。2.设置路由对应handle函数。3.设置handle函数
- 设置server
- 设置对应的处理函数,匿名函数,传入的是ctx是关键
- 开始run
路由匹配
参照spring的request param和正则匹配
通过param来获取参数,这个与java@request param取值差不多的思路
还有一种是在?这种参数,查询参数,使用query进行获取
设置register函数
当需要注册的路由太多,我们需要进行调用的server.get次数就会很多次。可以进行抽象出来一个方法,放到专属的类,每一个路由都在类里面就有处理方法。
下面就是优雅之后的代码。
分组路由
相当于spring的requestmapping放入到类最前面的路径
通过ug来接着子路径
数据接受
vo传输
与java类似,传输数据前后端,使用的需要vo,pojo来进行json传输数据。不同的是java可以自动封装传输的数据位class对象,这边需要把前后端的进行映射才能组装位vo,使用的是反引号·
这个也与email小写就是私有变量有关,所以需要进行编码
绑定接受
主要是在ctx数据,调用ctx来进行绑定数据
业务处理
使用正则进行校验密码是否符合规则
之后直接调用这些
跨域问题
后端的是8080端口,前端的是3000端口,这就设计到跨域问题
csrf,这个时候需要引入中间件,设置cors可以进行访问对应的路径
解决的方案使用preflight,就是发给server后,server返回我接受3000所有发过来的方法。
通过这里middleware进行注册,授权访问。
相当于spring的filter,这里面来进行处理,在这个allow里面进行允许,3000的端口
gorm入门
最终的数据操作还是要落到数据库的crud,所以需要gorm
0、docker安装mysql
使用docker-compose来进行安装,这里基本上,就是构建操作的image,映射的端口还有volume。这个相当于节省了自己写docker命令,
快速入门
- 定义连接
- 定义对应的class
- 操作数据对象
class对象定义
这里用到组合的语法,传入class,不加变量就是组合,之后自定义自己需要的变量
service-repository-dao
相当于mvc的三层操作方法,repository表示database和redis,都是可以进行返回数据的地方,dao才是最终去数据的操作。
web文件夹是相当于视图层了,service代表业务的完整流程,class变成其他的class。