包含标签 gin 的文章

「连载十七」用Nginx部署Go应用

知识点 Nginx。 反向代理。 本文目标 简单部署后端服务。 做什么 在本章节,我们将简单介绍 Nginx 以及使用 Nginx 来完成对 go-gin-example 的部署,会实现反向代理和简单负载均衡的功能。 Nginx 是什么 Nginx 是一个 Web Server,可以用作反向代理、负载均衡、邮件代理、TCP / UDP、HTTP 服务器等等,它拥有很多吸引人的特性,……

阅读全文

「番外」请入门 Makefile

知识点 写一个 Makefile 本文目标 含一定复杂度的软件工程,基本上都是先编译 A,再依赖 B,再编译 C…,最后才执行构建。如果每次都人为编排,又或是每新来一个同事就问你项目 D 怎么构建、重新构建需要注意什么…等等情况,岂不是要崩溃? 我们常常会在开源项目中发现 Makefil……

阅读全文

「连载十六」在图片上绘制文字

知识点 字体库使用 图片合成 本文目标 主要实现合并后的海报上绘制文字的功能(这个需求也是常见的很了),内容比较简单。 实现 这里使用的是 微软雅黑 的字体,请点击进行下载并存放到 runtime/fonts 目录下(字体文件占 16 MB 大小) 安装 $ go get -u github.com/golang/freetype 绘制文字 打开 service/article_service/article_poster.go 文件,增加绘制文字的业务逻辑,如下: 1 2 3 4 5 6 7 8 9 10 11……

阅读全文

「连载十五」生成二维码、合并海报

知识点 图片生成 二维码生成 本文目标 在文章的详情页中,我们常常会需要去宣传它,而目前最常见的就是发海报了,今天我们将实现如下功能: 生成二维码 合并海报(背景图 + 二维码) 实现 首先,你需要在 App 配置项中增加二维码及其海报的存储路径,我们约定配置项名称为 QrCodeSavePath,值为 qrc……

阅读全文

「连载十四」实现导出、导入 Excel

知识点 导出功能的实现 本文目标 在本节,我们将实现对标签信息的导出、导入功能,这是很标配功能了,希望你掌握基础的使用方式。 另外在本文我们使用了 2 个 Excel 的包,excelize 最初的 XML 格式文件的一些结构,是通过 tealeg/xlsx 格式文件结构演化而来的,因此特意在此都展示了,你可以根据自己的场景和喜爱去使用……

阅读全文

「连载十三」优化你的应用结构和实现Redis缓存

前言 之前就在想,不少教程或示例的代码设计都是一步到位的(也没问题) 但实际操作的读者真的能够理解透彻为什么吗?左思右想,有了今天这一章的内容,我认为实际经历过一遍印象会更加深刻 本文目标 在本章节,将介绍以下功能的整理: 抽离、分层业务逻辑:减轻 routers.go 内的 api 方法的逻辑(但本文暂不分层 repo……

阅读全文

「连载十二」优化配置结构及实现图片上传

知识点 重构、调整结构 本文目标 这个应用程序跑了那么久了,越来越大,越来越壮,仿佛我们的产品一样,现在它需要进行小范围重构了,以便于后续的使用,这非常重要。 前言 一天,产品经理突然跟你说文章列表,没有封面图,不够美观,!)&¥*!&)#&¥*!加一个吧,几分钟的……

阅读全文

「连载十一」Cron定时任务

知识点 完成定时任务的功能 本文目标 在实际的应用项目中,定时任务的使用是很常见的。你是否有过 Golang 如何做定时任务的疑问,莫非是轮询,在本文中我们将结合我们的项目讲述 Cron。 介绍 我们将使用 cron 这个包,它实现了 cron 规范解析器和任务运行器,简单来讲就是包含了定时任务所需的功能 Cron 表达式格式 字段名 是……

阅读全文

「连载十」定制 GORM Callbacks

涉及知识点 GORM 本文目标 GORM itself is powered by Callbacks, so you could fully customize GORM as you want GORM 本身是由回调驱动的,所以我们可以根据需要完全定制 GORM,以此达到我们的目的,如下: 注册一个新的回调 删除现有的回调 替换现有的回调 注册回调的顺序 在 GORM 中包含以上四类 Callbacks,我们结合项目选用 “替换现有的回调” 来解决一个小痛……

阅读全文

「番外」Golang 交叉编译

知识点 跨平台编译 本文目标 在 连载九 讲解构建 Scratch 镜像时,我们编译可执行文件用了另外一个形式的命令,如下: $ CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o go-gin-example . 我想你可能会有疑问,今天本文会针对这块进行讲解。 说明 我们将讲解命令各个参数的作用,希望你在阅读时,将每一项串联起来,你会发现这就是交叉编译相关的小知识 也就是 Golang 令……

阅读全文