Skip to content

whzywxt/gin-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gin blog demo

go version go1.18.9 windows/amd64

HTTP 应用

day01

  1. gin 搭建 Blog API
  2. 使用JWT鉴权

day02

  1. 简单的文件日志记录
  2. 优雅的重启服务
  3. 增加 Swagger
  4. 定制 GORM Callbacks
  5. Cron定时任务

day03

  1. 优化配置结构及图片上传
  2. 优化应用结构和实现redis缓存

day04

  1. 实现导入导出
  • 提示错误行及错误信息
  1. 生成二维码、合并海报

day05

  1. 在图片上绘制文字

conf

拷贝并修改配置文件 cp app.ini.default app.ini

packages

  • gin go get -u github.com/gin-gonic/gin Golang 的一个微框架,性能极佳
  • com go get -u github.com/unknwon/com 一个小而美的工具包
  • gorm go get -u github.com/jinzhu/gorm 对开发人员友好的 ORM 框架
  • driver go get -u github.com/go-sql-driver/mysql
  • validation go get -u github.com/astaxie/beego/validation 采用的 beego 的表单验证库
  • jwt go get -u github.com/dgrijalva/jwt-go 身份校验
  • excel github.com/360EntSecGroup-Skylar/excelize
  • excel github.com/tealeg/xlsx

database

CREATE TABLE `blog_tag` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) DEFAULT '' COMMENT '标签名称',
  `created_on` int(10) unsigned DEFAULT '0' COMMENT '创建时间',
  `created_by` varchar(100) DEFAULT '' COMMENT '创建人',
  `modified_on` int(10) unsigned DEFAULT '0' COMMENT '修改时间',
  `modified_by` varchar(100) DEFAULT '' COMMENT '修改人',
  `deleted_on` int(10) unsigned DEFAULT '0',
  `state` tinyint(3) unsigned DEFAULT '1' COMMENT '状态 0为禁用、1为启用',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文章标签管理';

CREATE TABLE `blog_article` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `tag_id` int(10) unsigned DEFAULT '0' COMMENT '标签ID',
  `title` varchar(100) DEFAULT '' COMMENT '文章标题',
  `desc` varchar(255) DEFAULT '' COMMENT '简述',
  `content` text,
  `created_on` int(11) DEFAULT NULL,
  `created_by` varchar(100) DEFAULT '' COMMENT '创建人',
  `modified_on` int(10) unsigned DEFAULT '0' COMMENT '修改时间',
  `modified_by` varchar(255) DEFAULT '' COMMENT '修改人',
  `deleted_on` int(10) unsigned DEFAULT '0',
  `state` tinyint(3) unsigned DEFAULT '1' COMMENT '状态 0为禁用1为启用',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文章管理';

CREATE TABLE `blog_auth` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(50) DEFAULT '' COMMENT '账号',
  `password` varchar(50) DEFAULT '' COMMENT '密码',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `blog_auth` (`id`, `username`, `password`) VALUES (null, 'test', 'test123456');

添加 Swagger

安装 swag

$ go install github.com/swaggo/swag/cmd/swag@latest

验证是否安装成功

$ swag -v
swag version v1.8.10

安装 gin-swagger

$ go get -u github.com/swaggo/gin-swagger@v1.2.0
$ go get -u github.com/swaggo/files
$ go get -u github.com/alecthomas/template

编写 API 注释,可参考 swag 语法

Swagger API 增加鉴权(auth)字段

在 main 入口文件增加全局配置,Header头里token字段,可修改

// @title gin-demo API
// @version 0.0.1
// @description This is a gin blog example
// @securityDefinitions.apikey ApiKeyAuth
// @in header
// @name token
// @BasePath /

在具体的 handler 里添加注释

// @Security ApiKeyAuth

访问 http://127.0.0.1:8080/swagger/index.html

可以直接使用开始调试了^_^

Releases

No releases published

Packages

No packages published

Languages