• 新手使用gin 创建第一个接口


    go 语言如果只是写接口的话,gin 应该就是最后的工具,可是现在的市场是很少人去学习go ,而且很多人感觉这们语言还不是很成熟,其他不然,只是很多人,都没有关注过这门还没有崛起的语言。

    使用golang 将gin web框架下载

    go get github.com/gin-gonic/gin 
    
    • 1

    (这个是要在vscode ,或者是goland 的终端运行,直接复制就可,注意要是你的项目目录,下图就是运行目录之后的结果,在外部库可以看到gin 这个文件,还要版本号)
    在这里插入图片描述

    第二部就是要创建这些文件。

    这个目录文件,文件都是要自己创建的,不是像php 的TP框架一样,MVC的目录,连接数据库的文件,配置文件都有,这个下载命令行运行完之后创建这些文件。(go.mod,hell.exe 是命令行生成的,不需要创建)

    在这里插入图片描述

    main.go文件的代码

    package main
    
    import (
    	"github.com/gin-gonic/gin"
    	"hello/route"
    )
    
    func main() {
    	// 1.创建路由
    	r := gin.Default()
    	// 2.绑定路由规则,执行的函数
    	// gin.Context,封装了request和response
    	route.Http(r)
    	// 3.监听端口,默认在8080
    	// Run("里面不指定端口号默认为8088")
    	r.Run(":8089")
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    上图的8089 就是你请求的端口,如果go run main.go的时候说接口被占用报错,可以试着换一下那个8089。

    package route
    
    import (
    	"github.com/gin-gonic/gin"
    	"hello/api/v1"
    )
    
    func Http(router *gin.Engine) {
    
    	apiRouter := router.Group("/api/v1/")
    	{
    		apiRouter.POST("/login", v1.Login)
    
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    这个我设置是路由组,就是路由还有前缀,我习惯一般设置三个,一个是后台,一个是前端,一个是第三方的。这样看路由就知道是那个地方,好区分,当然你也可以不设置。

    
    var form LoginForm
    
    type LoginForm struct {
    	User     string `form:"user" binding:"required"`
    	Password string `form:"password" binding:"required"`
    }
    
    func Logins(c *gin.Context) {
    
    	if c.ShouldBind(&form) == nil {
    		if form.User == "user" && form.Password == "password" {
    			c.JSON(200, gin.H{"status": "you are logged in"})
    		} else {
    			c.JSON(401, gin.H{"status": "unauthorized"})
    		}
    	}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    struct 可以将user,password 这两个字段设置成了,formdata 值 ,如果是raw json 传递,这个就要更改了如下

    	Number int    `json:"number" form:"number"`
    
    • 1

    好了,到这里就结束了,

    go mod init
    go mod tidy
    go run main.go
    
    • 1
    • 2
    • 3

    在终端打印这些命令之后就可以看到终端编写的api接口了
    在这里插入图片描述
    这个就是我们刚才写的接口地址了。使用怕poatman进行接口测试吧。
    在这里插入图片描述
    这个就是测试结果了,到这里就是我们的接口实现简单的通讯了。注意测试要加上端口号。

  • 相关阅读:
    pytest-rerunfailures插件之测试用例失败重跑
    Java计算机毕业设计视频网站的设计与实现源码+系统+数据库+lw文档
    食之无味?App Startup 可能比你想象中要简单
    【老生谈算法】matlab实现高斯白噪声仿真算法源码——高斯白噪声
    Linux:安装AnyConnect客户端教程
    [附源码]Python计算机毕业设计Django线上评分分享平台
    PostCSS概述
    2022 年 10 月 NFT 报告
    【地平线 开发板】实现模型转换并在地平线开发板上部署的全过程操作记录(魔改开发包)
    Scanf 不安全报错问题
  • 原文地址:https://blog.csdn.net/weixin_44531091/article/details/126848216