Go语言框架Gin基础教程二:接口封装
## 简介 上一篇的【[Go语言框架Gin基础教程一:创建项目](https://oldmoon.t
渲染中...
## 简介
上一篇的【[Go语言框架Gin基础教程一:创建项目](https://oldmoon.top/post/240)】中,介绍了使用 `Gin` 构建一个简单的Http服务,成功开放了端口,并测试了一个简单的 `hello` 接口。
通过上篇文章,已经确定Http通信是正常的,接下来可以介绍一下如何进行接收参数,但是在讲解参数接收前,为了便于接口统一管理,我们将接口统一迁移到一个文件夹中,暂且称之为:接口封装。
<!-- more -->
## 接口封装
> PS:熟悉`JavaWeb`开发的人应该都知道,这一步相当于`Controller`封装。
### 一般步骤
1. 首先在项目根目录创建一个 `controller` 文件夹;
2. 在`controller`文件夹内创建代码文件,这里将其命名为 `HelloController.go`;
3. 将上一篇文章中的 `hello` 方法迁移到 `HelloController.go` 中,并重命名为`Hello`;
5. 修改 `main.go` 中的代码,指向 `controller` 中的 `Hello`方法;
### HelloController.go示例
- 新建的 `HelloController.go`的代码如下:
```go
package controller
import (
"fmt"
"github.com/gin-gonic/gin"
)
// 接口参数必须是 c *gin.Context
func Hello(c *gin.Context) {
fmt.Println("hello gin")
}
```
### main.go示例
修改后的 `main.go` 代码如下:
```go
package main
// 引用 fmt 和 gin
import (
"fmt"
"github.com/gin-gonic/gin"
"gin-server/controller"
)
func main() {
// 创建路由
router := gin.Default()
// 路由分组
api := router.Group("/gin")
// 开放接口
api.GET("/hello", controller.Hello)
// 启动服务并设置端口为 8080
err := router.Run(":8080")
if err != nil {
fmt.Println("Error: ", err)
}
}
```
### 运行测试
提示:除了使用 `go run main.go` 运行服务,还可以使用 `go run .` 来运行。如果项目是多模块时,有时必须使用 `go run .` 来编译运行。
下面使用 `go run .`运行:
```console
E:\project-my\gin-server>go run .
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
- using env: export GIN_MODE=release
- using code: gin.SetMode(gin.ReleaseMode)
[GIN-debug] GET /gin/hello --> gin-server/controller.Hello (3 handlers)
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
[GIN-debug] Listening and serving HTTP on :8080
```
出现上面的输出信息,表示服务启动成功。然后像上一篇文章提到的测试方式测试即可。测试成功时,可以在命令行界面看到输出 `hello gin` 文字内容。
## 总结
1. 接口独立到其他包中之后,需要首字母大写,如 `Hello`,否则将对外部不可见。类似于 `Java` 中的保护类型 `protected`;
2. `go run .`表示编译当前文件夹,自动找到 `main` 入口。
通过本文,你已经学会了Go项目基础的代码封装,下一篇,将开始介绍参数接收的几种方法:【[Go语言框架Gin基础教程:参数接收](https://oldmoon.top/post/gin3)】
## 赞助请求V3
**建站因为热爱,生活需要Money,请屏幕前的大佬动动您发财的小手,点击一次以示鼓励,祝您生活愉快!**
<!-- 文章内嵌广告位 -->
<div class="article-ads"></div>
> PS:就目前的访问量,即便每个访客都点一次广告,收入也不足以支付运营成本。`如果看不到广告,可能是网络原因或被拦截了,那就算了吧。再次祝您生活愉快~~`END
评论
登录后查看和发表评论
前往登录