helloGin

简介: helloGin

文章目录


缘起

前几天无聊,去图书馆,看书的时候,突然发现了一本《Go 编程语言》.随手一翻,好家伙,这不正是我的入门语言C \ C++的升级版吗,然后就30分钟入了个小门。刚好今天无聊,就来尝试一下Gin,(一个Go的Web微型框架)。

等我再多学几天,再来对比一下,gin跟python的Flask,以及NodeKoa的差别。

初探

talk is cheap , show me the code


  1. 下载gin
go get -u github.com/gin-gonic/gin

这里如果没有设置代理的话,可能会报go get: module github.com/kardianos/govendor: Get "https://proxy.golang.org/github.com/kardianos/govendor/@v/list": dial tcp 142.251.43.17:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

开梯子也解决不了,运行下面这条指令,设置代理,即可

go env -w GOPROXY=https://goproxy.cn
  1. 创建demo文件夹
  2. 敲下hello
package main
import (
  "github.com/gin-gonic/gin"
)
func main() {
  r := gin.Default()
  r.GET("/hello", func(c *gin.Context) {
    c.JSON(200, gin.H{"hello": "world"})
  })
  r.Run()
}

注意这里,很大概率会遇到这样一个报错

no required module provides package github.com/gin-gonic/gin: go.mod file not found in current directory or any parent directory; see 'go help modules'

运行以下命令,借鉴我就想试试github.com/gin-gonic/gin,为什么死活都run不起来 - Go语言中文网 - Golang中文社区 (studygolang.com)

go mod init gin
  go mod edit -require github.com/gin-gonic/gin@latest

类似于node

yarn 
yarn add .
  1. 运行程序

  1. 浏览器访问

  1. 编译器变化

一些基本用法

获取param以及query参数

package main
import (
  "fmt"
  "github.com/gin-gonic/gin"
)
func main() {
  r := gin.Default()
  r.GET("/hello/:id", func(c *gin.Context) {
    // 获取单个param参数
    id := c.Param("id")
    // 获取query参数
    name := c.Query("name")
    fmt.Printf("id=%s, name=%s\r\n", id, name)
    c.JSON(200, gin.H{
      "data": "get",
      // "params":params
    })
  })
  r.Run()
}
  • 启动

  • 访问

  • 编译器变化

路由分组

类似于node的prefix

package main
import (
  "fmt"
  "github.com/gin-gonic/gin"
)
func main() {
  r := gin.Default()
  // 路由分组
  v1 := r.Group("v1")
  {
    // 可以在代码块里面定义,并比较规范
    // 当然如果你想在外面定义也可以,只是没那么规范
    v1.GET("/get", func(c *gin.Context) {
      c.JSON(200, gin.H{
        "data":  "v1/get",
        "hello": "world",
      })
    })
    v1.GET("/get1", func(c *gin.Context){
      c.JSON(200, gin.H{
        "data":"v1/get1"
      })
    })
  }
  v1.GET("/hello", func(c *gin.Context) {
    c.JSON(200, gin.H{
      "data":  "v1/hello",
      "hello": "world",
    })
  })
  r.Run()
}
  • 结果

绑定端口

r.Run()改成r.Run(":3000") 即可绑定3000端口启动。

打包

go build

Windows环境下会生成一个exe

双击打开,即可直接访问,不再需要go run xx

[官方文档](gin-gonic/gin: Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance – up to 40 times faster. If you need smashing performance, get yourself some Gin. (github.com))

相关文章
|
3月前
|
自然语言处理 API C++
阿里通义推出SmartVscode插件,自然语言控制VS Code,轻松开发应用,核心技术开源!
SmartVscode插件深度解析:自然语言控制VS Code的革命性工具及其开源框架App-Controller
|
29天前
|
人工智能 Java Python
python安装、vscode安装、conda安装:一文搞定Python的开发环境(史上最全)
尼恩架构团队推出了一系列《LLM大模型学习圣经》PDF,旨在帮助读者深入理解并掌握大型语言模型(LLM)及其相关技术。该系列包括Python基础、Transformer架构、LangChain框架、RAG架构及LLM智能体等内容,覆盖从理论到实践的各个方面。此外,尼恩还提供了配套视频教程,计划于2025年5月前发布,助力更多人成为大模型应用架构师,冲击年薪百万目标。
|
29天前
|
JavaScript 前端开发 jenkins
抛弃node和vscode,如何用记事本开发出一个完整的vue前端项目
本文探讨了在不依赖Node和VSCode的情况下,仅使用记事本和浏览器开发一个完整的Vue3前端项目的方法。通过CDN引入Vue、Vue Router、Element-UI等库,直接编写HTML文件实现页面功能,展示了前端开发的本质是生成HTML。虽然日常开发离不开现代工具,但掌握这种基础方法有助于快速实现想法或应对特殊环境限制。文章还介绍了如何用Node简单部署HTML文件到服务器,提供了一种高效、轻量的开发思路。
55 10
|
3月前
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。
|
3月前
|
开发工具 C++ git
利用VS Code提升开发效率的五大插件推荐
本文推荐了五款能显著提升开发效率的VS Code插件:ESLint用于代码质量和风格检查;Prettier自动格式化代码;GitLens增强Git功能;Live Server提供前端实时预览;Docker支持容器管理。
|
3月前
|
缓存 监控 开发者
掌握Docker容器化技术:提升开发效率的利器
在现代软件开发中,Docker容器化技术成为提升开发效率和应用部署灵活性的重要工具。本文介绍Docker的基本概念,并分享Dockerfile最佳实践、容器网络配置、环境变量和秘密管理、容器监控与日志管理、Docker Compose以及CI/CD集成等技巧,帮助开发者更高效地利用Docker。
|
4月前
|
Docker 容器
docker swarm启动服务并连接到网络
【10月更文挑战第16天】
79 5
|
3月前
|
JavaScript 开发者 Docker
深入理解Docker容器化技术,打造高效开发环境
深入理解Docker容器化技术,打造高效开发环境
|
4月前
|
前端开发 JavaScript 编译器
2024最新VSCode实用插件推荐,开发效率遥遥领先!超全面,快收藏~
【10月更文挑战第11天】2024最新VSCode实用插件推荐,开发效率遥遥领先!超全面,快收藏~
1117 0
2024最新VSCode实用插件推荐,开发效率遥遥领先!超全面,快收藏~
|
4月前
|
网络安全 Docker 容器
VScode远程服务器之远程 远程容器 进行开发(五)
VScode远程服务器之远程 远程容器 进行开发(五)
98 1

热门文章

最新文章