hincky的主页 hincky的主页
  • 学习笔记

    • Vue笔记
    • Vuepress
    • nginx
  • 语言类

    • java
    • go
    • python
    • 设计模式
  • 框架类

    • Spring
    • Spring Security
    • Mybatis
  • 容器技术

    • docker
    • k8s
    • helm
    • prometheus
    • grafana
    • jenkins
  • 命令集合

    • linux命令
    • docker命令
    • git命令
    • vim命令
    • k8s命令
  • 数据库

    • sql
    • mysql
  • 协议

    • 网络模型
    • http/1.1
    • WebSocket
    • http/2
    • TLS/SSL
    • tcp
    • IP
    • tcpdump抓包命令
    • wireshark抓包工具
  • 通用

    • Git
  • 技术分享

    • git push/pull总是超时怎么办
    • idea debug技巧
    • postman使用
    • 问题总结
    • idea使用技巧
  • Oauth2

    • Oauth2原理
  • 项目列表

    • redis项目
    • 微服务项目
  • 分类
  • 标签
  • 归档
  • 随笔
GitHub (opens new window)

Hincky

当有趣的人,做想做的事
  • 学习笔记

    • Vue笔记
    • Vuepress
    • nginx
  • 语言类

    • java
    • go
    • python
    • 设计模式
  • 框架类

    • Spring
    • Spring Security
    • Mybatis
  • 容器技术

    • docker
    • k8s
    • helm
    • prometheus
    • grafana
    • jenkins
  • 命令集合

    • linux命令
    • docker命令
    • git命令
    • vim命令
    • k8s命令
  • 数据库

    • sql
    • mysql
  • 协议

    • 网络模型
    • http/1.1
    • WebSocket
    • http/2
    • TLS/SSL
    • tcp
    • IP
    • tcpdump抓包命令
    • wireshark抓包工具
  • 通用

    • Git
  • 技术分享

    • git push/pull总是超时怎么办
    • idea debug技巧
    • postman使用
    • 问题总结
    • idea使用技巧
  • Oauth2

    • Oauth2原理
  • 项目列表

    • redis项目
    • 微服务项目
  • 分类
  • 标签
  • 归档
  • 随笔
GitHub (opens new window)
  • java

  • python

  • Spring

  • SpringMVC

  • SpringSecurity

  • Mybatis

  • 设计模式

  • Go

    • 基础语法

    • Gin框架

      • 框架安装
        • 概述
        • Gin 安装
      • 路由配置
        • 概述
        • 路由配置
        • 源码
      • 日志记录
        • 概述
        • 日志格式
        • Logrus 使用
        • 源码
      • 数据绑定和验证
        • 概述
        • 源码
      • 自定义错误处理
        • 概述
        • 错误处理
        • 自定义错误处理
        • panic 和 recover
        • 源码
      • 统一定义 API 错误码
        • 改之前
        • 改之后
        • errno 包源码
        • 错误码规则
          • 错误码为 5 位数
    • Go gRPC

    • go-gin-api [文档]

    • go基本介绍
      • 安装go
      • hello world
      • 变量类型
      • 变量和声明
        • 定义和赋值分开
        • 定义和赋值合并
        • 最简单的写法
        • 最简写法结合函数
        • 多个变量同时赋值
        • 变量总结
      • if
      • 导入包
      • 运行go代码
      • 函数声明
        • 返回值个数
        • 参数接收
        • 两个参数都接收
        • 只接收其中一个参数
    • Go结构体
      • 定义结构体
      • 声明和初始化
        • 结构体字段
        • 结构体初始化
        • 函数参数传递方式
        • 镜像复制
        • 指针
      • 结构体上的函数
      • 构造器
        • new
    • Go相关项目推荐
      • 收录golang的一些好的开源项目
  • 后端
  • Go
  • Gin框架
hincky
2022-11-21
目录

框架安装

# 概述

看下 Gin 框架的官方介绍:

Gin 是一个用 Go (Golang) 编写的 web 框架。 它是一个类似于 martini 但拥有更好性能的 API 框架, 由于 httprouter,速度提高了近 40 倍。 如果你是性能和高效的追求者, 你会爱上 Gin。

是的,就是用 Gin 来写 API 接口。

# Gin 安装

必须要先安装 Go,Go 的安装可以参考:Go - 环境安装 (opens new window)。

框架安装可以参考官网:

https://gin-gonic.com/zh-cn/docs/quickstart/

我在安装时,用的是 dep 安装,给大家分享下。

dep 是啥 ?

它是 Golang 官方依赖管理工具,可以认为它与 PHP 中的 composer 类似。

在这就不多做介绍了,可以自己去了解,安装也比较简单。

我本机是 Mac,安装只需一个命令:

brew install dep
1

咱们接下来创建一个新项目:ginDemo。

在 ginDemo 目录下执行:

dep init
1

执行完毕,会生成如下三个文件:

├─ ginDemo
│  ├─ vendor
│  ├─ Gopkg.toml
│  ├─ Gopkg.lock
1
2
3
4
  • 依赖包都会下载到 vendor 目录。
  • 需要的依赖配置写在 Gopkg.toml 文件。
  • Gopkg.lock 暂时可以不用管。

在 Gopkg.toml 文件中增加依赖:

[[constraint]]
  name = "github.com/gin-gonic/gin"
  version = "1.4.0"
1
2
3

新增一个 main.go 文件:

// 官方 Demo
package main

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

func main() {
	r := gin.Default()
	r.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "pong",
		})
	})
	r.Run() // listen and serve on 0.0.0.0:8080
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

ginDemo 目录下执行:

dep ensure
1

执行完毕,vendor 目录会存在安装包,这时整体目录结构如下:

├─ ginDemo
│  ├─ vendor
│     ├── github.com
│         ├── ...
│     ├── golang.org
│         ├── ...
│     ├── gopkg.in
│         ├── ...
│  ├─ Gopkg.toml
│  ├─ Gopkg.lock
│  ├─ main.go
1
2
3
4
5
6
7
8
9
10
11

ginDemo 目录下执行:

go run main.go
1

浏览器访问:http://localhost:8080/ping

大功告成!

编辑 (opens new window)
WaitGroup 来实现并发操作
路由配置

← WaitGroup 来实现并发操作 路由配置→

最近更新
01
人生前期重要的能力
05-17
02
防火墙命令
04-11
03
docker-compose部署mysql主从集群
03-22
更多文章>
Theme by Vdoing | Copyright © 2022-2023 Hincky | MIT License | 粤ICP备2022120427号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式