GO程序员的一些快捷开发工具,告别体力活,其实java或者其它语言也有这样那样的快捷工具,能够告别体力活,顺便偷懒,这也是我目前正在规划的事情,做一个真正的程序员工具平台,服务广大程序员,解放双手,有更多时间陪女朋友陪老婆陪小孩。
【1】、在线json转go结构体
json字段:
{"code":200,"message":"success","data":{"tips":"未收藏","status":false}}
一键转go结构体:
网址推荐:
1、https://www.sojson.com/json/json2go.html
2、https://oktools.net/json2go
//第一个type AutoGenerated struct {Code int `json:"code"`Message string `json:"message"`Data struct {Tips string `json:"tips"`Status bool `json:"status"`} `json:"data"`}//第二个type AutoGenerated struct {Code int `json:"code"`Message string `json:"message"`Data Data `json:"data"`}type Data struct {Tips string `json:"tips"`Status bool `json:"status"`}
【2】、在线sql转go结构体,gorm或xorm
sql语句:
CREATE TABLE `user_account_tbl` (`id` int(11) NOT NULL AUTO_INCREMENT,`account` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`account_type` int(11) NOT NULL DEFAULT '0' COMMENT '帐号类型:0手机号,1邮件',`app_key` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT 'authbucket_oauth2_client表的id',`user_info_tbl_id` int(11) NOT NULL,`reg_time` datetime DEFAULT NULL,`reg_ip` varchar(15) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`bundle_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`describ` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `account` (`account`) USING BTREE,KEY `user_info_id` (`user_info_tbl_id`) USING BTREE,CONSTRAINT `user_account_tbl_ibfk_1` FOREIGN KEY (`user_info_tbl_id`) REFERENCES `user_info_tbl` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='用户账号'
sql2go,一键将sql语句转为go结构体,xorm的orm框架
网址:http://stming.cn/tool/sql2go.html
type UserAccountTbl struct {Id int `json:"id" xorm:"not null pk autoincr INT(11) 'id'"`Account string `json:"account" xorm:"not null VARCHAR(64) 'account'"`Password string `json:"password" xorm:"not null VARCHAR(64) 'password'"`AccountType int `json:"account_type" xorm:"not null default 0 comment('帐号类型:0手机号,1邮件') INT(11) 'account_type'"`AppKey string `json:"app_key" xorm:"not null comment('authbucket_oauth2_client表的id') VARCHAR(255) 'app_key'"`UserInfoTblId int `json:"user_info_tbl_id" xorm:"not null INT(11) 'user_info_tbl_id'"`RegTime sql.NullTime `json:"reg_time" xorm:"default 'NULL' DATETIME 'reg_time'"`RegIp sql.NullString `json:"reg_ip" xorm:"default 'NULL' VARCHAR(15) 'reg_ip'"`BundleId sql.NullString `json:"bundle_id" xorm:"default 'NULL' VARCHAR(255) 'bundle_id'"`Describ sql.NullString `json:"describ" xorm:"default 'NULL' VARCHAR(255) 'describ'"`}
gormt,一键将sql语句转为go结构体,gorm的orm框架
网址,暂时没有在线工具,需要自己安装:
https://gitee.com/mirrors/gormt
CREATE TABLE `user_account_tbl` (`id` int(11) NOT NULL AUTO_INCREMENT,`account` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,`account_type` int(11) NOT NULL DEFAULT '0' COMMENT '帐号类型:0手机号,1邮件',`app_key` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT 'authbucket_oauth2_client表的id',`user_info_tbl_id` int(11) NOT NULL,`reg_time` datetime DEFAULT NULL,`reg_ip` varchar(15) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`bundle_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,`describ` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `account` (`account`) USING BTREE,KEY `user_info_id` (`user_info_tbl_id`) USING BTREE,CONSTRAINT `user_account_tbl_ibfk_1` FOREIGN KEY (`user_info_tbl_id`) REFERENCES `user_info_tbl` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='用户账号'
自动生成的golang gorm结构体如下
type UserAccountTbl struct {ID int `gorm:"primary_key"`Account string `gorm:"unique"`Password stringAccountType int // 帐号类型:0手机号,1邮件AppKey string // authbucket_oauth2_client表的idUserInfoTblID int `gorm:"index"`UserInfoTbl UserInfoTbl `gorm:"association_foreignkey:user_info_tbl_id;foreignkey:id"` // 用户信息RegTime time.TimeRegIP stringBundleID stringDescrib string}
【3】IDE采用Goland
【4】toml2go
https://xuri.me/toml-to-go/
用于将编码后的 toml 文本转换 golang 的 struct
【5】curl-to-go
https://github.com/mholt/curl-to-go
将curl语句转为go代码
【6】go泛型
https://github.com/cheekybits/genny
文章评论