01.安装gin框架

1)go环境配制

a)配制环境变量

GOPATH修改为go的工作文件夹路径

D:\Golang\goproject

GOROOT修改为go的安装路径

D:\Golang\go1.19

Path增加GOROOT的bin和GOPATH的bin

D:\Golang\go1.19
D:\Golang\go1.19

b)在环境变量配制国内代理(挂梯下载仍失败)

GOPROXY修改为国内代理网址,国内代理很多,可自由选择

https://goproxy.io,direct

c)添加变量GO111MODULE

设置值为

auto

有些早期的教程会建议设置值为on,目前可以设置为auto

d)查看是否配制完成环境变量

终端运行

go env

e)工程管理

工作目录下新建src、pkg、bin三个文件夹

src:go源码存放文件夹

pkg:经由go install命令构建的安装后的代码包存放文件夹

bin:通过go install命令完成安装后,保存由go命令源码间生成的可执行文件存放文件夹

2)安装gin框架

tips:更新代理后不管用可重启一下

a)初始化

在项目文件夹中(非src文件夹中)于终端运行代码完成项目初始化(非常重要)

go mod init "goproject"

b)运行安装代码

go get -u github.com/gin-gonic/gin

tips:可以添加-v更直观观察安装进程(可查看安装成功的,如果是只有-u有安装失败的则值显示安装失败的。安装成功会显示)

c)常见报错信息处理

fatal: unable to access 'https://github.com/gin-contrib/sse/': OpenSSL SSL_read: Connection was aborted, errno 10053
package github.com/gin-contrib/sse: exit status 1

原因:网络错误或者sslverify没有关

解决方法:

先关闭sslverify,执行

git config --global http.sslVerify "false"

未果更换代理

package google.golang.org/protobuf/proto: unrecognized import path "google.golang.org/protobuf/proto": https fetch: Get "https://google.golang.org/protobuf/proto?go-get=1": 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.

原因:网络错误

解决方法:更换代理

注:半夜成功率貌似会降低,白天尝试

warning: go env -w GOPROXY=... does not override conflicting OS environment variable

原因:有些教程中教导大家使用go env -w GOPROXY=https://goproxy.cn,direct或类似的方式进行更换代理,之前在环境变量中修改过的就可能会因为权限不够报错

解决方法:此时需要再进入系统设置的的环境变量进行手动修改

$GOPATH/go.mod exists but should not

原因:不小心建立了多余的go.mod文件

解决方法:删除多余的那个

go: go.mod file not found in current directory or any parent directory; see 'go help modules'

在VSCode里的终端运行出现的报错

原因:通过代理拉取的文件会安装至pkg文件夹而非src文件夹

解决方法:

执行

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

随后会看到提示

go: updates to go.mod needed; to update it:
go mod tidy

再执行

go mod tidy

显示

go: downloading gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
go: downloading github.com/go-playground/assert/v2 v2.0.1
go: downloading github.com/google/go-cmp v0.5.5
go: downloading gopkg.in/yaml.v3 v3.0.1
go: downloading github.com/davecgh/go-spew v1.1.1
go: downloading github.com/pmezard/go-difflib v1.0.0
go: downloading github.com/kr/pretty v0.3.0
go: downloading golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543
go: downloading github.com/rogpeppe/go-internal v1.8.0
go: downloading github.com/kr/text v0.2.0

说明迁移成功

d)验证是否完成框架

写一个gin框架下的example

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() // 监听并在 0.0.0.0:8080 上启动服务
}

运行

go run example.go

02.使用gin编写简单服务端

主要代码:

package main

import (
"net/http" "github.com/gin-gonic/gin"
) func main() {
//创建一个默认的路由引擎
r := gin.Default()
//创建一个/hello的请求路径方式,当客户端请求这个路径返回码200,会执行下面的函数
//打印"message" : "Hello world"
r.GET("/hello", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "Hello world",
})
})
//启动http服务,默认是在0.0.0.0:8080启动服务
//下面是指定在9090端口号启动http服务
r.Run(":9090")
}

浏览器访问可以查看输出内容

127.0.0.1:9090/hello

1.1 安装gin框架&使用gin编写简单服务端的更多相关文章

  1. 在python中编写socket服务端模块(二):使用poll或epoll

    在linux上编写socket服务端程序一般可以用select.poll.epoll三种方式,本文主要介绍使用poll和epoll编写socket服务端模块. 使用poll方式的服务器端程序代码: i ...

  2. 基于gin框架搭建的一个简单的web服务

    刚把go编程基础知识学习完了,学习的时间很短,可能还有的没有完全吸收.不过还是在项目中发现知识,然后在去回顾已学的知识,现在利用gin这个web框架做一个简单的CRUD操作. 1.Go Web框架的技 ...

  3. golang gin框架中实现一个简单的不是特别精确的秒级限流器

    起因 看了两篇关于golang中限流器的帖子: Gin 开发实践:如何实现限流中间件 常用限流策略--漏桶与令牌桶介绍 我照着用,居然没效果-- 时间有限没有深究.这实在是一个很简单的功能,我的需求是 ...

  4. 关于在一台主机上安装2个不同版本的Oracle服务端

    一.安装Oracle12c 按正常安装方法安装即可! ORACLE_BASE=/u01/app ORACLE_HOME=/u01/app/oracle ORACLE_SID=a4orcl 二.安装Or ...

  5. 使用oracle11g_instant_client来解决在不安装oracle客户端的情况下连接服务端

    一.下载instantclient_11_2,可去oracle官网进行下载. 二.解压缩下载的instantclient_11_2,将instantclient_11_2目录拖放到C:\Program ...

  6. 不同框架实现的WebService的服务端获取HttpServletRequest的方法

    一. 基于xfire实现的WebService HttpServletRequest request = XFireServletController.getRequest(); 二. 基于axis实 ...

  7. php编写TCP服务端和客户端程序

    1.修改php.ini,打开extension=php_sockets.dll 2.服务端程序SocketServer.php <?php //确保在连接客户端时不会超时 set_time_li ...

  8. GO语言GIN框架入门

    Gin框架介绍 Gin是一个用Go语言编写的web框架.它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍. 中文文档 Gin框架安装与使用 ...

  9. 前端程序员学习 Golang gin 框架实战笔记之一开始玩 gin

    原文链接 我是一名五六年经验的前端程序员,现在准备学习一下 Golang 的后端框架 gin. 以下是我的学习实战经验,记录下来,供大家参考. https://github.com/gin-gonic ...

  10. gin框架中间件

    1. Gin框架中间件Gin框架中间件A. Gin框架允许在请求处理过程中,加入用户自己的钩子函数.这个钩子函数就叫中间件B. 因此,可以使用中间件处理一些公共业务逻辑,比如耗时统计,日志打印,登陆校 ...

随机推荐

  1. js 实例对象 面向对象编程

      1.对象是什么 面向对象编程(Object Oriented Programming,缩写为 OOP)是目前主流的编程范式.它将真实世界各种复杂的关系,抽象为一个个对象,然后由对象之间的分工与合作 ...

  2. js 俄罗斯方块 canvas

    俄罗斯方块背景- canvans 第一次写不知道说些什么好,直接上代码了@_@... jquery引入 <script src="https://cdn.bootcdn.net/aja ...

  3. 华为R&W典型园区网络设计

    PS:本人正在学习HCIP中,想到一个典型的园区网络就自己用ENSP搭建了一个典型拓扑分享给大家一起学习 拓扑图如下: 要求已经写在拓扑结构下下方文本框中请自行查看! 配置如下(没有专门的命令插入我就 ...

  4. java对excel的操作

    1.对比任意两张excel表是否有不同行 并输出哪一行那一列不同 2.包含解析合并单元格方法 3.比较主要思路 a.解析excel: b.遍历第一张表数据所有行 c.遍历第二张表数据所有行 d.遍历第 ...

  5. Vue 中的 key 有什么作用?

    key 是为 Vue 中 vnode 的唯一标记,通过这个 key,我们的 diff 操作可以更准确.更快速. Vue 的 diff 过程可以概括为:oldCh 和 newCh 各有两个头尾的变量 o ...

  6. pands 编码知识

    一,pandas功能 1,基于numpy , 分析结构化数据. 二,常用基础知识编码练习 包括数据类型,数据操作,比如索引,分片 ,分组聚合 ,排序 过滤等等数分常见操作代码 # coding=utf ...

  7. Net Core 3.1 ONVIF 操控海康摄像头

    先给出实现的代码 https://github.com/lu1770/onvif-client.git 也可以通过安装包来使用功能 dotnet add package Onvif 基本用法 Agen ...

  8. grep展示相邻行

    grep搜索展示匹配行的上面或下面相邻的行: # grep -A 1 pattern file -A选项,是 After 的缩写,表示除了展示匹配行之外,还要展示出匹配行下面的若干行.而示例中的 -A ...

  9. Redis缓存中的数据和数据库不一致

    首先关于两者数据的一致性包含有两种情况: (1)缓存中有数据时,那数据库中的数据要和缓存中的数据相同: (2)缓存中没有数据时,数据库中的数据必须是最新的. 如果不符合以上两种情况,就属于缓存和数据库 ...

  10. (K8s学习笔记三)创建Namespace

    Namespace(命名空间)很多情况下用于实现多租户的资源隔离.Namespace通过将集群内部的资源对象"分配"到不同的Namespace中,形成逻辑上分为不同项目.小组或用户 ...