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))

相关文章
|
5月前
|
存储 持续交付 Docker
Docker:颠覆传统开发的轻量级容器革命
Docker:颠覆传统开发的轻量级容器革命
|
10月前
|
存储 开发工具 开发者
揭秘 Microsoft.Docker.SDK:让容器开发更轻松的强大工具揭秘
随着云计算和容器技术的快速发展,`Docker` 已经成为容器化技术的事实标准。`Microsoft` 作为 `Docker` 的主要支持者和参与者,推出了 `Microsoft.Docker.SDK`,旨在帮助开发者更轻松地进行容器开发。本文将深入揭秘 Microsoft.Docker.SDK 的功能、使用方法以及它在容器开发中的应用。
278 13
|
11月前
|
NoSQL MongoDB 数据库
使用 docker 快速搭建开发环境的 mongodb 服务
本指南介绍如何使用 Docker 和 Docker Compose 部署 MongoDB 和 Mongo Express。首先,通过 Docker 命令分别启动 MongoDB(镜像 `mongo:7.0.14`)和 Mongo Express(镜像 `mongo-express:1.0.2-20-alpine3.19`),并配置环境变量确保两者能正确连接。接着,提供了一个 `docker-compose.yaml` 文件示例,包含 MongoDB 数据卷、健康检查及服务依赖配置,简化多容器管理。
1740 2
|
10月前
|
安全 开发者 Docker
Docker技术背景与应用:解决现代开发中的关键问题
Docker作为一种革命性的容器化技术,极大地改变了现代软件开发的方式。通过解决环境一致性、依赖管理、部署复杂性和资源利用率等问题,Docker为开发者提供了高效、灵活的开发和部署环境。尽管面临着一些挑战,但随着技术的发展和完善,Docker将继续在现代软件开发中发挥重要作用。作为全栈工程师,掌握并善用Docker技术,将为我们的开发工作带来更多便利和可能性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。
|
缓存 监控 开发者
掌握Docker容器化技术:提升开发效率的利器
在现代软件开发中,Docker容器化技术成为提升开发效率和应用部署灵活性的重要工具。本文介绍Docker的基本概念,并分享Dockerfile最佳实践、容器网络配置、环境变量和秘密管理、容器监控与日志管理、Docker Compose以及CI/CD集成等技巧,帮助开发者更高效地利用Docker。
|
Docker 容器
docker swarm启动服务并连接到网络
【10月更文挑战第16天】
331 5
|
IDE 网络安全 开发工具
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
本文介绍了如何使用VS Code通过Remote-SSH插件连接远程服务器进行代码开发,并与PyCharm进行了对比。作者认为VS Code在连接和配置多个服务器时更为简单,推荐使用VS Code。文章详细说明了VS Code的安装、远程插件安装、SSH配置文件编写、服务器连接以及如何在连接后切换文件夹。此外,还提供了使用密钥进行免密登录的方法和解决权限问题的步骤。
6180 0
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
|
存储 持续交付 开发者
掌握Docker容器化:提升开发效率与应用部署
【10月更文挑战第4天】在现代软件开发中,Docker容器化技术因其轻量级、可移植和快速部署的特点,成为提升开发效率和简化部署流程的关键工具。本文介绍了Docker的基本概念、核心组件及其优势,并探讨了如何在开发环境中搭建、微服务架构及CI/CD流程中有效利用Docker,助力软件开发更加高效便捷。
|
网络安全 数据安全/隐私保护 C++
VS Code 的SSH连接不成功问题分析与解决
VS Code 的SSH连接不成功问题分析与解决