从零开始基于go-zero的go web项目实战-01项目初始化

从零开始基于go-zero搭建go web项目实战-01项目初始化

简介

导语

Go 是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,go语言的特点:

  • 语法简洁
  • Go语言简单易学,学习曲线平缓
  • 代码风格统一
  • 执行性能好
  • 开发效率高
  • 等等...

在Go语言中,有很多高性能的web框架:gin、beego、iris等。作为后起之秀,近年来,go-zero 框架因为其高效、灵活、易用等特点,在行业中被广泛应用和认可。本系列文章前期会从go-zero入门到实战从零开始搭建开发环境,项目目录结构,代码编写,需求开发等进行详细的介绍,后续会从零开始编写开源项目treasure-box

  • 项目地址1:https://gitee.com/li_zheng/treasure-box
  • 项目地址1:https://github.com/

treasure-box介绍

treasure-box 构建一个在线的开源的工作台|工具箱集合,整合日常开发工具,生产效率、便民生活、图像处理、休闲娱乐等。 支持自定义插件,自定义工作台,即时提醒等功能,成为你生产生活的瑞士军刀。

共建开源插件市场,丰富应用,整个项目从零开始,不断完善,前后端代码开源免费。

技术栈介绍

不断完善中...

  • 后端
    • go 1.19
    • go-zero v1.5.3 微服务高性能弹性框架
    • golang-jwt JWT 认证
    • go-redis
    • etcd
    • gorm
    • grpc、protobuf
    • logx 和 logc 日志处理
    • spf13 cobra 命令行工具
    • 消息队列
    • 加解密、限流、指标统计、负载监控等
  • 数据库
    • mysql
  • 前端
    • VUE3、Pinia、Ant design 等
    • 微信小程序
  • 运维&监控
    • Docker
    • K8s
    • Prometheus

项目初始化

环境准备

  • golang 安装 本人1.19环境
  • goctl 安装,goctl 是 go-zero 的内置脚手架,是提升开发效率的一大利器,可以一键生成代码、文档、部署 k8s yaml、dockerfile 等。
bash 复制代码
go install github.com/zeromicro/go-zero/tools/goctl@latest

如果命令无法使用,查看gopath bin文件夹是否在path环境变量里

  • protoc 安装 可选,不使用GRP可以暂时不安装

DEMO项目生成

  1. 使用goctl命令生成示例项目,注意名称不能使用中划线
bash 复制代码
goctl api new service_name
复制代码
├─etc                 // 配置文件
└─internal         // 逻辑代码
    ├─config       // 配置结构体
    ├─handler    // 路由信息和mvc层
    ├─logic        // 业务逻辑处理
    ├─svc			// 服务上下文	
    └─types     // 结构体文件
  1. 运行:go mod tidy 下载依赖包
  2. 运行实例项目: go run servicename.go

调整目录结构

goctl 生成的demo项目目录结构可能不太适合我们使用,可以对目录结构进行调整,本项目调整如下。

源码地址:源码仓库地址 https://gitee.com/li_zheng/treasure-box

下一章内容

1、集成JWT,并实现简单的基于内存的用户名密码登录生成token

2、集成cobra命令行工具:版本查看,服务启动

相关推荐
独行侠影a1 小时前
SpringBoot 分布式锁实战:Redisson 解决订单超卖并发问题
spring boot·分布式·后端
microrain3 小时前
从监控孤岛到视联一体:SagooIoT视频监控中心的设计实践
物联网·golang·开源·sagooiot
风曦Kisaki3 小时前
# Kubernetes(K8s)笔记Day12 :K8s 七层代理(Ingress 和 Ingress Controller)
linux·笔记·云原生·容器·kubernetes
运维行者_5 小时前
网络监控与ITSM集成:从告警到工单,实现运维自动化闭环
开发语言·网络·分布式·后端·架构·flask·php
雨辰AI8 小时前
达梦 DM9 K8s 密评合规部署|等保三级 + 密评双标准安全加固(金融级实测通过)
安全·云原生·容器·金融·kubernetes·政务
雨辰AI8 小时前
K8s 数据库 Secret 加密实战|密码明文漏洞彻底修复,等保密评双合规(金仓 / 达梦双库适配)
数据库·容器·kubernetes
猿长大人9 小时前
C# | MediatR 入门指南:后端架构解耦
分布式·后端·架构·c#·.net
Chasing__Dreams9 小时前
Go 语言学习笔记
云原生·容器·kubernetes
GoFly开发者10 小时前
GoFly 社区 GMQT|国产自研 MQTT‑Broker,打造私有化物联网消息底座
物联网·mqtt·golang·mqtt broker·mqtt私有化部署
明王明王11 小时前
从零搭建一个单节点 K8S 可观测实验室(六):安装 Tempo + OpenTelemetry,构建链路追踪链路
云原生·容器·kubernetes