整合Swagger
整合SwaggerWhat is Swagger Swagger 是 描述使用JSON表示的RESTful API 接口文档描述语言,实现了自动文档,代码生成和测试用例功能 Get Swagger(Gin) go get -u github.com/swaggo/swag/cmd/swag import("github.com/swaggo/files" ginSwagger "github.com/swaggo/gin-swagger") Prepare Swagger 在根目录执行swag init 生doc文件 在main写入项目介绍 1234567891011121314// @title Tets Swaggper项目接口文档// @version 1.0// @description Go web Swagger// @termsOfService http: //swagger.io/terms/// @contact.name Piwriw// @contact.url http://www.swagger....
自定义业务状态码
自定义业务状态码业务状态码和HTTP状态码 业务状态码:在 REST 接口设计规范中,我们通常都会被引导为这里的 Code 应该是 HTTP 协议状态码 200,404 或者 501 等 HTTP状态码:HTTP 请求状态码是 HTTP 协议的一部分,用于表明 HTTP 响应状态 How to prepare code1. Code业务状态码封装123456789101112131415161718192021222324252627package controllertype ResCode int64const ( CodeSuccess ResCode=1000+iota CodeInvalidParam CodeUserExist CodeUserNotExist CodeInvalidPassword CodeServeBusy)var codeMsgMap=map[ResCode]string{ CodeSuccess: "success", CodeInvalidParam:"请求参数错误", CodeUserEx...
整合JWT
整合JWTWhat is JWT JWT 是 JSON Web Token 的缩写,是为了在⽹络应⽤环境间传递声明⽽执⾏的⼀种基于JSON的开放标准((RFC 7519)。JWT 本身没有定义任何技术实现,它只是定义了⼀种基于 Token 的会话管理的规则,涵盖 Token 需要包含的标准内容和 Token 的⽣成过程,特别适⽤于分布式站点的单点登录(SSO)场景 一段JWT Token 由”.”切割成头部、负载、签名三部分 JWT优缺点 JWT 拥有基于 Token 的会话管理⽅式所拥有的⼀切优势,不依赖 Cookie,使得其可以防⽌ CSRF 攻击,也能在禁⽤ Cookie 的浏览器环境中正常运⾏。 ⽽ JWT 的最⼤优势是服务端不再需要存储 Session,使得服务端认证鉴权业务可以⽅便扩展,避免存储Session 所需要引⼊的 Redis 等组件,降低了系统架构复杂度。但这也是 JWT 最⼤的劣势,由于有效期存储在 Token 中,JWT Token ⼀旦签发,就会在有效期内⼀直可⽤,⽆法在服务端废⽌,当⽤户进⾏登出操作,只能依赖客户端删除掉本地存储的 JWT Tok...
整合validation库
整合validation库Background 利用validation库进行对参数校验,减少业务逻辑的手动校验 Get validation go get github.com/go-playground/validator/v10 validation 配置项目 逗号( ,):把多个验证标记隔开。注意:隔开逗号之间不能有空格, validate:”lt=0,gt=100”,逗号那里不能有空格,否则panic 横线( - ):跳过该字段不验证 竖线( | ):使用多个验证标记,但是只需满足其中一个即可 Tag Description Example required 必填 Field或Struct validate:"required" omitempty 空时忽略 And more len 长度 Field validate:”len=0” eq 等于 Field validate:”eq=0” gt 大于 Field validate:”gt=0” gte 大于等于 ...
整合zap日志
数据库(MySql)篇连接数据库123456789101112131415161718192021 db, err := sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/DB_TEST") // 测试连接 db.Ping() // 使用 defer 释放连接 defer db.Close()``` ## insert 插入数据```java db, err := sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/DB_TEST") db.Ping() defer db.Close() if err != nil { fmt.Println("数据库连接失败!") } _, err := db.Query("INSERT INTO user VALUES(1, 'test')") if err != nil ...
整合zap日志
整合zap日志To Get zapgo get go.uber.org/zap Fast Use全局loggger123logger, _ := zap.NewProduction()defer logger.Sync() // 将 buffer 中的日志写到文件中logger.Info("this is a test log") Zap.S 和 Zap.Lzap.SugarLogger zap 默认的 logger 不支持格式化输出,要打印指定值要用 zap.String、zap.Int 等封装 SugaredLogger提供了debug、info、warn、error、panic、dpanic、fatal这几种方法(使用fmt.Sprint的默认格式),另外还有带f的支持format,带w的方法则支持with键值对 使用zap.SugarLogger sugar.Info("this will not be logged") sugar.DPanic("test dpanic") …… SugaredLogger...
Kubeedge-边缘计算
why I write the series of kubeedge It base on an experience I had studying kubeege. What is more,I chose it as my graduation project.(ps: somethings from Kubeedge 云原生边缘计算公开课) When I stumbled upon this series of courses. Now let get it! Backgroud of Edge calculation Famous words:” The future is here and it is built on cloud native “ (未来就在这里,它建立在云原生之上) Edge Computing will be 4x larger than cloud and will generate 75% of data worldwide by 2025. With hardware andsoftware spread across hundreds o...
AI协同子项目-Sedna
Kubeedge - 6:AI协同子项目-Sedna什么是 Sedna Sedna是在KubeEdge SIG AI孵化的边云协同AI项目。得益于 KubeEdge 提供的边云协同能力,Sedna 可以实现跨边云协同训练和协同推理能力,如联合推理、增量学习、联邦学习和终身学习。Sedna支持流行的AI框架,如TensorFlow,Pytorch,PaddlePaddle,MindSpore。 Sedna可以简单地为现有的训练和推理脚本启用边缘云协同功能,从而带来降低成本、提高模型性能和保护数据隐私的好处 安装Sedna环境准备 1VM 2CPU(个人建议4CPU) 2GB+MEMORY(建议4G+) 10GB+ free disk space Internet connection(docker hub, github etc.) Linux platform, such as ubuntu/centos Docker 17.06+ 特别提醒:当你运行样例的时候,发现卡死,线查看主机的CPU和运行占用情况,所以要求CPU和内存...
piwriw_blog
Piwriw Blog 基于Gin的个人博客系统 一个后端使用了Gin、数据库ORM使用Sqlx,前端使用了Vue2.X的个人博客系统 探索本项目的文档 » 本篇README.md面向开发者 目录 项目概述 页面演示 用户端 管理端 快速启动 文件目录说明 作者 鸣谢 项目概述Piwriw_blog是一个博客系统,前端基于Vue2构建了用户端和管理员系统,后端基于Gin和Sqlx构建。 页面演示用户端 首页 详情 管理端 文章编辑 文章列表 评论管理 分类列表 用户列表 个人设置 快速启动 克隆项目到本地1git clone git@github.com:Piwriw/piwriw_blog.git 下载后端依赖(前提:你已经开启了go modules 并且设置了国内镜像代理)12cd piwriw_blog go mod tidy 下...



