随笔分类 - golang-gin-实践
摘要:前言 在 连载九 讲解构建Scratch镜像时,我们编译可执行文件用了另外一个形式的命令,不知道你有没有疑问? $ CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o gin_blog . 说明 我们将讲解命令各个参数的作用,希望你在
阅读全文
摘要:前言 本章节将实现如下功能: 生成二维码 合并海报(背景图+二维码) 实现 首先,你需要在 App 配置项中增加二维码及其海报的存储路径,我们约定配置项名称为 QrCodeSavePath,值为 qrcode/ 生成二维码 安装:go get -u github.com/boombuler/barc
阅读全文
摘要:前言 在本节,我们将实现对标签信息的导出、导入功能,这是很标配功能了,希望你掌握基础的使用方式 另外在本文我们使用了 2 个 Excel 的包,excelize 最初的 XML 格式文件的一些结构,是通过 tealeg/xlsx 格式文件结构演化而来的,因此特意在此都展示了,你可以根据自己的场景和喜
阅读全文
摘要:优化你的应用结构和实现redis缓存 规划 在本章节,将介绍以下功能的整理: 抽离、分层业务逻辑:减轻 routers/*.go 内的 api方法的逻辑(但本文暂不分层 repository,这块逻辑还不重) 增加容错性:对 gorm 的错误进行判断 Redis缓存:对获取数据类的接口增加缓存设置
阅读全文
摘要:优化配置结构及实现图片上传 一天,产品经理突然跟你说文章列表,没有封面图,不够美观,!)&¥!&)#&¥!加一个吧,几分钟的事 你打开你的程序,分析了一波写了个清单: 优化配置结构(因为配置项越来越多) 抽离 原 logging 的 File 便于公用(logging、upload 各保有一份并不合
阅读全文
摘要:Cron定时任务 在实际的应用项目中,定时任务的使用是很常见的。你是否有过 Golang 如何做定时任务的疑问,莫非是轮询? 在本文中我们将结合我们的项目讲述 Cron 介绍 我们将使用 cron 这个包,它实现了 cron 规范解析器和任务运行器,简单来讲就是包含了定时任务所需的功能 Cron表达
阅读全文
摘要:docker介绍 在这里简单介绍下Docker,建议深入学习 Docker 是一个开源的轻量级容器技术,让开发者可以打包他们的应用以及应用运行的上下文环境到一个可移植的镜像中,然后发布到任何支持Docker的系统上运行。 通过容器技术,在几乎没有性能开销的情况下,Docker 为应用提供了一个隔离运
阅读全文
摘要:http.Server-Shutdown() package main import ( "context" "fmt" _ "gin_log/models" "gin_log/pkg/setting" "gin_log/routers" "log" "net/http" "os" "os/sign
阅读全文
摘要:编写一个简单的文件日志 在上一节中,我们解决了API’s可以任意访问的问题,那么我们现在还有一个问题。 就是我们的日志,都是输出到控制台上的,这显然对于一个项目来说是不合理的,因此我们这一节简单封装log库,使其支持简单的文件日志! 新建logging包 我们在pkg下新建logging目录,新建f
阅读全文
摘要:使用JWT进行身份验证 在前面几节中,我们已经基本的完成了API’s的编写 但是,还存在一些非常严重的问题,例如,我们现在的API是可以随意调用的,这显然还不够完美,是有问题的 那么我们采用 jwt-go (GoDoc)的方式来简单解决这个问题 下载依赖包 首先,我们下载jwt-go的依赖包 go
阅读全文
摘要:编写article的apis和models 定义接口 本节编写文章的逻辑,我们定义一下接口吧! 获取文章列表:GET("/articles") 获取指定文章:POST("/article/:id") 新建文章:POST("/article") 更新指定文章:PUT("/article/:id") 删
阅读全文
摘要:定义接口 本节正是编写标签的逻辑,我们想一想,一般接口为增删改查是基础的,那么我们定义一下接口吧! 获取标签列表:GET(“/tags”) 新建标签:POST(“/tags”) 更新指定标签:PUT(“/tags/:id”) 删除指定标签:DELETE(“/tags/:id”) 编写路由空壳 开始编
阅读全文
摘要:初始化项目目录 conf:用于存储配置文件 middleware:应用中间件 models:应用数据库模型 pkg:第三方包 routers 路由逻辑处理 runtime 应用运行时数据 初始化项目数据库 新建blog数据库,编码为utf8_general_ci 在blog数据库下,新建以下表 标签
阅读全文