当前位置: 首页 > article >正文

go-zero学习笔记(一)

基础环境搭建

  1. 安装go环境
    网上文章比较多,不在赘述,我当时参考的文章是:https://blog.csdn.net/weixin_41287260/article/details/143661816
    记得修改go env 中的环境变量,
    主要是goproxy 改成七牛云的,这样下载代码库时比较快

    go env -w GOPROXY=https://goproxy.cn,direct
    

    go官网:https://golang.google.cn/dl/
    常用命令:

    go mod init name
    go mod tidy
    go build
    go run
    
  2. 安装gozero、goctl
    go-zero官网:https://go-zero.dev/

    使用goctl可以快速帮助我们实现基础框架,减少工作量!!!
    goctl安装:go install github.com/zeromicro/go-zero/tools/goctl@last
    可参考:https://blog.csdn.net/rxbook/article/details/144964978

    当然,也可以下载源码,然后go build, 在将生成的文件放到go的bin目录下

    常用命令:

    goctl api go -api user.api -dir . -style gozero 
    goctl rpc protoc xxx.proto --go_out=. --go-grpc_out=. --zrpc_out=.
    
  3. 安装protoc、protoc-gen-go 和 protoc-gen-go-grpc
    编写rpc部分会用到
    可参考:https://blog.csdn.net/m0_74823388/article/details/144277792

    当然,也可以下载源码,然后go build, 在将生成的文件放到go的bin目录下

  4. 安装etcd
    go-zero的默认是将服务注册到ercd中去,因此,最好也将etcd也安装了
    可参考:https://blog.csdn.net/qq_55272229/article/details/141607072

  5. 安装goctl-swagger
    通过插件goctl-swagger来将.api文件转化为swagger格式的json文件,该接口可以直接作为前后端的接口文档进行使用。
    这玩意主要是在生成文档的时候使用。
    可参考:https://blog.csdn.net/weixin_49369316/article/details/129439722
    go-zero插件goctl-swagger的坑

    当然,也可以下载源码,然后go build, 在将生成的文件放到go的bin目录下

    常用命令:

    goctl api plugin -plugin goctl-swagger="swagger -filename user.json" -api user.api -dir .
    
  6. 安装gormt
    在开发中,我们大概率会使用到数据库,该工具可以帮我们实现mysql数据库转 struct 工具,可以将mysql数据库自动生成golang sturct结构,带大驼峰命名规则。带json标签

    官网:https://gitcode.com/gh_mirrors/go/gormt/blob/master/README_zh_cn.md

    具体操作:

    a. 安装:go install github.com/xxjwxc/gormt@last
    b. 创建配置文件config.yml

     	```yaml
     	base:
     	    is_dev: false
     	out_dir: ./model  # 输出目录
     	url_tag: json # web url tag(json,db(https://github.com/google/go-querystring))
     	language: 中 文  # 语言(English,中 文)
     	db_tag: gorm # 数据库标签(gorm,db)
     	simple: false # 简单输出(默认gorm标签不输出)
     	is_out_sql: false # 是否输出 sql 原信息
     	is_out_func: true # 是否输出 快捷函数
     	is_foreign_key: true # 是否导出外键关联
     	is_gui: false  # 是否ui模式显示
     	is_table_name: false # 是否直接生成表名,列名
     	is_null_to_point: false # 数据库默认 'DEFAULT NULL' 时设置结构为指针类型
     	is_web_tag: false
     	is_web_tag_pk_hidden: false
     	table_prefix: "" #表前缀
     	table_names: "" #指定表生成,多个表用,隔开
     	is_column_name: true # 是否生成列名
     	is_out_file_by_table_name: false # 是否根据表名生成多个model
     	db_info:
     	    host : 127.0.0.1
     	    port : 3306
     	    username : root
     	    password : qwer
     	    database : oauth_db
     	    type: 0 # 数据库类型:0:mysql , 1:sqlite , 2:mssql
     	self_type_define: # 自定义数据类型映射
     	    datetime: time.Time
     	    date: time.Time
     	out_file_name: "" # 自定义生成文件名
     	web_tag_type: 0 # json tag类型 0: 小驼峰 1: 下划线
     	
     	```
    

    c. 在配置文件的目录下执行 gormt -g=false

  7. 安装go编译器goland
    linux下Goland图标解决方案参考:https://blog.csdn.net/theonepiece/article/details/125244617


http://www.kler.cn/a/525129.html

相关文章:

  • XCTF - IllIntentions wp
  • Linux pkill 命令使用详解
  • 【C语言】static关键字的三种用法
  • 《深度剖析Q-learning中的Q值:解锁智能决策的密码》
  • 数字化转型-工具变量(2024.1更新)-社科数据
  • C语言实现统计数组正负元素相关数据
  • 《多线程基础之互斥锁》
  • Java基础知识-第14章-Java注解
  • 上位机知识篇---Linux源码编译安装链接命令
  • web ssti注入
  • 《Operating System Concepts》阅读笔记:p1-p1
  • 基于Springboot的智能学习平台系统【附源码】
  • 让远程也能访问家里的电脑——frp反代
  • Elasticsearch 自定义分成器 拼音搜索 搜索自动补全 Java对接
  • 多线程执行大批量数据查询
  • 手写instanceof、手写new操作符
  • 多头潜在注意力(MLA):让大模型“轻装上阵”的技术革新——从DeepSeek看下一代语言模型的高效之路
  • python-leetcode-反转链表 II
  • vulfocus/thinkphp:6.0.12 命令执行
  • go-zero学习笔记(二)
  • Pyside的QWebEngineProfile类
  • OpenLayers知识总结1
  • 在Putty创建php文件
  • 安卓通过网络获取位置的方法
  • 透视B/S架构与C/S架构:构建未来网络应用的智慧选择
  • C27.【C++ Cont】时间、空间限制和STL库的简单了解