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

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接口

    // 获取路由
 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

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

// 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 请求的接口

// 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 安装依赖包

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语言值得一学~

(0)

相关推荐

  • Go Vet 命令:超出预期的强大

    前言 Go vet 命令在编写代码时非常有用.它可以帮助您检测应用程序中任何可疑.异常或无用的代码.该命令实际上由几个子分析器组成,甚至可以与您的自定义分析器一起工作.让我们首先回顾一下内置的分析器. ...

  • Go语言爱好者周刊:第 91 期 — Error 和 String 的题目

    昨天 这里记录每周值得分享的 Go 语言相关内容,周日发布. 本周刊开源(GitHub:polaris1119/golangweekly[1]),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 iss ...

  • Go 中的函数是一等公民,这到底在说什么?

    来自群友的问题 请问下各位大佬,这是什么语法,为什么不需要参数的? 对于有些人来说这根本不是问题,但有些人却想不明白.我提到,在 Go 语言中,函数是一等公民,但对方不清楚这到底在说什么.看来有必要解 ...

  • 解决方案(6) http-gin的使用

    介绍 HTTP服务框架,简单易用. 简称 类型 含义 r gin.IRouter 路由器对象. c *gin.Context 请求上下文. param Param 路由handler的入参绑定对象 1 ...

  • 回答我,停止 Goroutine 有几种方法?

    大家好,我是煎鱼. 协程(goroutine)作为 Go 语言的扛把子,经常在各种 Go 工程项目中频繁露面,甚至有人会为了用 goroutine 而强行用他. 在 Go 工程师的面试中,也绕不开他, ...

  • vue 开发常用工具及配置四:推荐一个 mock 工具

    本文大约 1000 字. 在系统原型设计阶段,或后端接口不足备的情况下,如何验证模型信息的完整性?此时 mock 是一个不错的选择. 一般开发者可能倾向于直接写后端接口,哪怕只是返回假数据.之前作者也 ...

  • Go 微服务框架对比:Go Micro, Go Kit, Gizmo, Kite

    下面是我要比较的框架: Go Micro[1] Go Kit[2] Gizmo[3] Kite[4] 框架简介 Go Micro 我认为最流行的框架之一.有很多博客文章和简单的例子.您可以在 medi ...

  • Go业务开发中常用的几个开源库

    前言 哈喽,大家好,我是asong.拖更了好久,这周开始更新. 最近总有一些初学Go语言的小伙伴问我在业务开发中一般都使用什么web框架.开源中间件:所以我总结了我在日常开发中使用到的库,这些库不一定 ...

  • Go语言开发的Web框架

    Go语言由Google公司开发,并于2009年开源,相比Java/Python/C等语言,Go尤其擅长并发编程,性能堪比C语言,开发效率肩比Python,被誉为"21世纪的C语言" ...

  • Go语言:1分钟写下第一个Go程序,并在终端里以指令方式运行

    这是<Go语言简易入门>系列内容第5篇,所有内容列表见:https://yishulun.com/books/go-easy/目录.html 设置环境变量$GOPATH.$PATH 从官网 ...