ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Golang Gin

2020-10-26 21:35:07  阅读:25  来源: 互联网

标签:Web http Golang gin Gin net


net/http

Golang(Go语言)内置是有HTTP服务的,我们可以通过内置的net/http包来实现一个HTTP服务。

func main() {
    http.HandleFunc("/",Index)

    log.Fatal(http.ListenAndServe(":8080", nil))
}

func Index(w http.ResponseWriter, r *http.Request){
    fmt.Fprint(w,"Hello World")
}

 

这就是一个很简单的HTTP服务实现,我们运行这个代码程序,然后在浏览器里打开http://localhost:8080网址,

Hello World

从代码上看实现一个HTTP服务是非常简单的,这也是Golang语言的优势,在底层做了很多封装,可以让我们更容易的实现相关的服务。

虽然net/http看着很便捷、很简单,但是它也存在很多不足:

  1. 不能单独的对请求方法(POST,GET等)注册特定的处理函数

  2. 不支持Path变量参数

  3. 不能很很好的获取参数

  4. 不支持参数校验

  5. 不支持参数绑定

  6. 不能更好的多种格式输出

  7. 性能一般

  8. 扩展性不足

  9. ……

以上等等,这些又都是我们Web开发中常用的,所以我们只能我们自己开发中自己重复的实现,影响了效率,降低了质量,不同人的开发者,性能也不一样。

这时候,我们就非常需要一个Golang Web 框架来帮我们把这些重复的事情做了,这个就是Golang Gin要做的事情了。Golang Gin 作为一个非常优秀的Web框架,帮我们弥补了net/http的不足,同时还增加了很多日常Web开发使用的功能,可以让我们更好的进行Web开发。

Hello Gin

要使用Gin非常简单,它和其他第三方 Golang 库一样。如果你是基于GOPATH开发的,你需要先使用go get -u github.com/gin-gonic/gin 下载gin,然后import导入即可。

如果你是用Go Module这种方式,使用import直接导入使用,然后你在go run运行的时候,会自动的下载gin包编译使用。当然你也可以通过go mod tidy来下载依赖的模块。

现在让我们通过一个例子,看下Golang Gin的使用是多么简单吧。

package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "Taobao":"alibaba",
            "Wechat":"tencent",
        })
    })
    r.Run(":8080")
}

然后我们运行它,打开浏览器,输入http://localhost:8080/就可以看到如下内容:

{

"Taobao":"alibaba",
"Wechat":"tencent"

}

看我们输出一个JSON格式的内容是多么简单,这不就是我们项目中经常用到的API 返回的格式吗?不需要特别的包装,即可很方便的实现,比内置的net/http要好多了。

标签:Web,http,Golang,gin,Gin,net
来源: https://www.cnblogs.com/peteremperor/p/13881459.html

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有