Golang Gin系列-2:搭建Gin 框架环境

ops/2025/1/21 12:41:29/

开始网络开发之旅通常是从选择合适的工具开始的。在这个全面的指南中,我们将引导你完成安装Go编程语言和Gin框架的过程,Gin框架是Go的轻量级和灵活的web框架。从设置Go工作空间到将Gin整合到项目中,本指南是高效而强大的web开发路线图。

安装Go语言

在我们深入安装过程之前,根据开发需求选择正确的Go版本至关重要。访问Go官方网站(https://golang.org/dl/)下载最新的稳定版本。下面几个环境变量需要正确设置
在这里插入图片描述

GOROOT

  • 含义:它指定了 Go 语言的安装目录。这个目录包含了 Go 编译器、标准库等核心组件。例如,在 Go 1.18 版本的安装目录下,你可以找到 src(包含 Go 语言标准库的源代码)、pkg(编译后的包文件存放位置)和 bin(Go 工具链的可执行文件,如 gogofmt 等)等子目录。

  • 作用:当你执行 Go 相关的命令时,系统会根据 GOROOT 来找到 Go 的核心组件。例如,go build 命令构建程序时,会从 GOROOT 下的标准库中引用必要的库文件。

  • 设置示例(以 Linux 为例):如果 Go 安装在 /usr/local/go,你可以通过以下方式设置 GOROOT

export GOROOT=/usr/local/go

GOPATH

  • 含义GOPATH 是 Go 工作区的路径,它是一个或多个目录的路径列表。在早期的 Go 版本中,这是一个非常重要的环境变量。GOPATH 下包含三个主要的子目录:srcpkgbinsrc 用于存放 Go 源代码,pkg 用于存放编译后的包文件,bin 用于存放可执行文件。

  • 作用:它为 Go 项目提供了统一的工作空间。例如,当你使用 go get 命令下载外部依赖包时,这些包会被放置到 GOPATH/src 目录下;当你构建自己的 Go 项目时,项目的源代码也可以存放在 GOPATH/src 下。

  • 设置示例(以 Windows 为例):假设你想将GOPATH 设置为 C:\Go\workspace,你可以通过以下步骤设置:

    1. 打开系统的环境变量设置窗口。
    2. 在 “用户变量” 或 “系统变量” 中添加一个名为 GOPATH 的变量,其值为 C:\Go\workspace

GOBIN

  • 含义GOBIN 用于指定 Go 二进制文件(可执行文件)的安装目录。
  • 作用:当你使用 go install 命令安装 Go 程序时,生成的可执行文件会被放置到 GOBIN 指定的目录中。这有助于组织和管理 Go 生成的可执行文件。
  • 设置示例(以 Linux 为例):如果想将 Go 二进制文件安装到 ~/go/bin,可以设置 GOBIN 如下:
export GOBIN=~/go/bin
  • 创建Go项目

使用‘ go mod ’命令为项目初始化新的go模块。这有助于管理依赖关系并促进与其他开发人员的协作。

建议开发环境为:WSL+VSCode,具体环境搭建过程再次略过。

安装Gin Framework

  • Gin框架概述

Gin是一个面向Go的高性能web框架,提供路由、中间件支持等功能。让我们探讨一下为什么Gin是Go web开发的热门选择。通过下面命令安装Gin, 将Gin导入到Go项目中来确认安装。

$ go install github.com/gin-gonic/gin@latest

在这里插入图片描述

下面创建一个简单的Gin应用程序,让我们使用Gin构建一个基本的web应用程序来理解它的核心概念。然后设置路由器,定义路由和处理程序来处理传入的HTTP请求。

package mainimport "github.com/gin-gonic/gin"func main() {router := gin.Default()router.GET("/", func(c *gin.Context) {c.JSON(200, gin.H{"message": "Hello, Gin!",})})router.Run(":8080")
}

执行Gin应用程序并在web浏览器中访问它。下面我们在Gin中添加中间件,通过集成中间件来增强Gin应用程序的功能,如日志记录、身份验证等。

package mainimport ("github.com/gin-gonic/gin""net/http"
)func Logger() gin.HandlerFunc {return func(c *gin.Context) {fmt.Println("before call...")c.Next()fmt.Println("after call...")}
}func main() {router := gin.Default()// Use the Logger middlewarerouter.Use(Logger())router.GET("/", func(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"message": "Hello, Gin with Middleware!",})})router.Run(":8080")
}

再次运行出现,可以看到控制台打印的日志信息,可以判断日志中间件已经启用。

结论

恭喜! 你已经成功安装了Go和Gin框架,设置了Go工作区,并构建了基本的Gin web应用程序。


http://www.ppmy.cn/ops/151913.html

相关文章

1.简单的爬虫

1.数据在哪里? 在页面源码里 直接获取数据 不在页面源码里 找到真正获取数据的URL,再获取数据 2.requests模块 安装 pip install requests pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests抓网站文字数据 import requestsurl &qu…

《重生到现代之从零开始的C++生活》—— 类和对象1

类 我嘞个豆,类可是太重要了,简直是重中之重 class为定义类的关键字,stack为类的名字,{}为类的主题 class stack {void add (int a,int b){return ab;}//类的方法,成员函数int _c;int _d;//类的属性,成…

最长递增子序列问题(Longest Increasing Subsequence),动态规划法解决,贪心算法 + 二分查找优化

问题描述&#xff1a;在一个大小乱序的数列中&#xff0c;找到一个最大长度的递增子序列&#xff0c;子序列中的数据在原始数列中的相对位置保持不变&#xff0c;可以不连续&#xff0c;但必须递增。 输入描述&#xff1a; 第一行输入数列的长度 n。(1 < n < 200) 第二…

git创建分支,推送分支,合并分支,回退

1.可视化操作初始化仓库&#xff0c;设置远程连接&#xff0c;抓取远程仓库的分支内容,然后在版本管理的原创下面的主支 点击重置到哪个版本&#xff0c;覆盖原始内容(取消保持工作区的内容) 2.创建并切换到新分支&#xff1a;git checkout -b lzh (如果是切换不创建去掉-b) 3…

【数据分享】1929-2024年全球站点的逐年平均气温数据(Shp\Excel\无需转发)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff0c;其中又以气温指标最为常用&#xff01;说到气温数据&#xff0c;最详细的气温数据是具体到气象监测站点的气温数据&#xff01;本次我们为大家带来的就是具体到气象监…

无人机技术架构剖析!

一、飞机平台系统 飞机平台系统是无人机飞行的主体平台&#xff0c;主要提供飞行能力和装载功能。它由机体结构、动力装置、电气设备等组成。 机体结构&#xff1a;无人机的机身是其核心结构&#xff0c;承载着其他各个组件并提供稳定性。常见的机身材料包括碳纤维、铝合金、…

睡眠时间影响因素K-Means可视化分析+XGBoost预测

1. 导包及数据展示 import numpy as np import pandas as pd import seaborn as sns import matplotlib import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn.cluster import KMeans from xgboost import XGBRegressor from …

【2024 CSDN博客之星】技术洞察类:从DeepSeek-V3的成功,看MoE混合专家网络对深度学习算法领域的影响(MoE代码级实战)

目录 一、引言 1.1 本篇文章侧重点 1.2 技术洞察—MoE&#xff08;Mixture-of-Experts&#xff0c;混合专家网络&#xff09; 二、MoE&#xff08;Mixture-of-Experts&#xff0c;混合专家网络&#xff09; 2.1 技术原理 2.2 技术优缺点 2.3 业务代码实践 2.3.1 业务场…