教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 使用 Go 创建项目

使用 Go 创建项目

发布时间:2022-02-17   编辑:jiaochengji.com
教程集为您提供使用 Go 创建项目等资源,欢迎您收藏本站,我们将为您提供最新的使用 Go 创建项目资源
<h2>简介</h2>

这可能是接下来一系列的文章的开始.

使用 Gin 创建一个 web 项目.

主要参考的是掘金小册里的 基于 Go 语言构建企业级的 RESTful API 服务.

通过学习掘金小册, 并加上自己的实践, 完成一个完整的 Go Web 项目.

<h2>创建一个项目</h2>

新建一个项目, 并使用 go mod 初始化.

<pre><code class="bash">go mod init tzh.com/web</code></pre>

因为这个项目不会发布到其他地方, 也不会作为依赖被使用, 所以 模块路径 是随意选择的.

添加对 Gin 的依赖.

<pre><code class="bash">go get -u github.com/gin-gonic/gin</code></pre> <h2>启动一个简单的服务器</h2>

第一部分是创建一个简单的服务器, 主文件如下:

<pre><code class="go">package main import ( "log" "net/http" "github.com/gin-gonic/gin" "tzh.com/web/handler/check" "tzh.com/web/router" ) func main() { // 初始化空的服务器 app := gin.New() // 保存中间件 middlewares := []gin.HandlerFunc{} // 路由 router.Load( app, middlewares..., ) go func() { if err := check.PingServer(); err != nil { log.Fatal("服务器没有响应", err) } log.Printf("服务器正常启动") }() log.Printf("启动服务器在 http address: %s", ":8080") log.Printf(http.ListenAndServe(":8080", app).Error()) } </code></pre>

初始化了 Gin, 主要分为两步.

第一步运行了 <code>router.Load</code> 函数, 里面初始化了一些中间件, 以及一些检查类的 API.

第二步通过一个 goroutine 检查了服务器是否启动成功,
其实我觉得这里可以加一个循环, 定时检查服务器状态.

当前定义的中间件, 主要是设置 Headers 的, 这个就要熟不熟悉常见的 Headers,
这部分我不太熟悉, 以前主要是靠框架自动设置的.

Options 还是知道的, 添加跨域支持. 但对安全设置<code>middleware.Secure()</code>, 真的是没有研究.

<pre><code class="go">// 载入中间件 func Load(g *gin.Engine, mw ...gin.HandlerFunc) *gin.Engine { g.Use(gin.Logger()) g.Use(gin.Recovery()) g.Use(middleware.NoCache()) g.Use(middleware.Options()) g.Use(middleware.Secure()) g.Use(mw...) g.NoRoute(func(ctx *gin.Context) { ctx.String(http.StatusNotFound, "incorrect api router") }) checkRoute := g.Group("/check") { checkRoute.GET("/health", check.HealthCheck) checkRoute.GET("/disk", check.DiskCheck) checkRoute.GET("/cpu", check.CPUCheck) checkRoute.GET("/memory", check.MemoryCheck) } return g }</code></pre>

接着设置了对 404 的响应.

gin.Group 是个好东西, 用于创建必要前缀, 或者分组都很有用,
官方文档里的例子演示了如何用作 api 版本的区分.

这里组织了一些检查服务器状态的 API, 主要使用 gopsutil 模块获取.

当前的内容就分析到这里, 代码见下面.

<h2>一点感受</h2>

差不多是第一次写一个完整的 Go 项目, 不得不说, 折腾编辑器就折腾好久了.

一开始总是有很多的不习惯和陌生, 还是要多多接触.

Go 的模块现在还不是很成熟, gopls 的提示也不是很完美, 感觉脱离了编辑器就不会写代码了.

<h2>当前部分的代码</h2>

作为版本 0.1.0

<h2>资瓷一下</h2>

虽然不是我写的, 大家都能优惠, 也支持一下原作者.

<span class="img-wrap"></span>

到此这篇关于“使用 Go 创建项目”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
04.Go项目布局-你如何设计项目结构
想系统学习GO语言(Golang
从零开始学习GO语言-搭建Go语言开发环境-快速开发入门第一个小程序
在 Go 语言项目中使用 Travis CI
golang之 go path和go module
GO 依赖管理工具go Modules(官方推荐)
go html提取纯文本_Go 语言高性能编程
Go语言中的GOPATH解析
Go Module入门及Golang项目组织
go 项目 cmd目录_Go语言基础(一)

[关闭]
~ ~