前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go语言网络编程入门不走弯路最佳案例(写Api接口)

Go语言网络编程入门不走弯路最佳案例(写Api接口)

作者头像
zhaoolee
发布2020-12-16 17:14:38
1.3K0
发布2020-12-16 17:14:38
举报
文章被收录于专栏:木子昭的博客木子昭的博客

Go语言是Google领导开发的一门编程语言,国内可访问的官网 https://golang.google.cn/

image-20201213123438844

只要选对了框架,用Go语言完成网络编程会变得非常容易,目前Github Star数量最多的Go语言的框架为gin, 开源地址 github.com/gin-gonic/gin ,并且提供了中文文档 https://gin-gonic.com/zh-cn/docs/

写一个最简单的Get接口

代码语言:javascript
复制
    // 获取路由
    r := gin.Default()

    // 最简单的回应 http://127.0.0.1:8080/ping
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "pong(最简单的回应)",
        })
    })

image-20201213122245906

写一个鹦鹉学舌式的小程序

代码语言:javascript
复制
// GET版 鹦鹉学舌 http://127.0.0.1:8080/message?name=dd
    r.GET("/message", func(c *gin.Context){
        name := c.Query("name");
        data := map[string]interface{}{
            "name": name,
        }
        c.JSON(200, gin.H{
            "status": 1000,
            "message": "响应鹦鹉学舌",
            "data": data,
        })
    })

image-20201213122441082

写一个响应POST 请求的接口

代码语言:javascript
复制
// POST版鹦鹉学舌 http://127.0.0.1:8080/movie

    type Info struct {
        Name string `json:"name"`
        Score int `json:"score"`
    }

    r.POST("/movie", func(c *gin.Context){

        // 以Info为模板初始化data
        var data Info
        
        // 将请求参数绑定到data
        c.BindJSON(&data);

        c.JSON(200, gin.H{
            "status": 1000,
            "message": "返回电影名称和评分",
            "data": data,
        })

    })

image-20201213122620459

以上实例完整代码

使用之前请先运行 go get github.com/gin-gonic/gin 安装依赖包

代码语言:javascript
复制
package main

import (
    "github.com/gin-gonic/gin"
    "fmt"
)

func main() {
    // 获取路由
    r := gin.Default()

    // 最简单的回应 http://127.0.0.1:8080/ping
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "pong(最简单的回应)",
        })
    })
    
    // GET版 鹦鹉学舌 http://127.0.0.1:8080/message?name=dd
    r.GET("/message", func(c *gin.Context){
        name := c.Query("name");
        data := map[string]interface{}{
            "name": name,
        }
        c.JSON(200, gin.H{
            "status": 1000,
            "message": "响应鹦鹉学舌",
            "data": data,
        })
    })

    // POST版鹦鹉学舌 http://127.0.0.1:8080/movie

    type Info struct {
        Name string `json:"name"`
        Score int `json:"score"`
    }

    r.POST("/movie", func(c *gin.Context){

        // 以Info为模板初始化data
        var data Info
        
        // 将请求参数绑定到data
        c.BindJSON(&data);

        fmt.Println("=data=>>",data);


        c.JSON(200, gin.H{
            "status": 1000,
            "message": "返回电影名称和评分",
            "data": data,
        })

    })


    r.Run() // 监听并在 0.0.0.0:8080 上启动服务
}

Go语言编译器安装教程

https://www.runoob.com/go/go-environment.html

小结

Go语言是Google主导开发的语言,拥有C++级别的性能,Python级别的易用度,如果你想写性能极高的程序, 又想保护发际线, 避开C++ , 那Go语言值得一学~

阅读原文(支持读写评论)

https://www.v2fy.com/p/2020-12-13-go/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写一个最简单的Get接口
  • 写一个鹦鹉学舌式的小程序
  • 写一个响应POST 请求的接口
  • 以上实例完整代码
  • Go语言编译器安装教程
  • 小结
  • 阅读原文(支持读写评论)
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档