首页 > 其他分享 >1.1 安装gin框架&使用gin编写简单服务端

1.1 安装gin框架&使用gin编写简单服务端

时间:2023-01-30 12:55:36浏览次数:36  
标签:github 1.1 downloading go gin com 服务端 mod

01.安装gin框架

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

标签:github,1.1,downloading,go,gin,com,服务端,mod
From: https://www.cnblogs.com/mismoonmore/p/17074182.html

相关文章

  • k8s部署nginx-ingress
    Kubernetes暴露服务的有三种方式,分别为LoadBlancerService、NodePortService、Ingress。官网对Ingress的定义为管理对外服务到集群内服务之间规则的集合,通俗点讲就是......
  • UnrealEngine使用Streaming方式加载场景后,获取Level,并改变Level上Actor坐标的方法
    1.LevelStreaming配置1.1可以在Level中,配置多个SubLevel2.加载LevelStreaming2.1可以直接加载,或者动态使用蓝图节点LoadStreamLevel来加载2.2获取Level......
  • java整合hudi-client 0.11.1
    1.Linux部署hudi环境(1)安装maven-3.5.4、jdk1.8环境#解压maven,重命名tar-xfapache-maven-3.5.4-bin.tar.gz-C/usr/local/mvapache-maven-3.5.4maven#解压jdk,重命名ta......
  • nginx索引静态文件
    前言针对nas服务器文件下载或者需要索引一些静态二进制文件的地方,可以利用nginx自带的索引文件功能实现。root/var/www/html;#索引目录autoindexon;autoindex_exact_size......
  • 9.2 SQL Server BEGIN END
    BEGINEND目录BEGINEND简介嵌套BEGIN...END简介BEGIN…END语句用于定义语句块。语句块由一组一起执行的SQL语句组成。语句块也称为批处理。打个比方说,如果语句是句子......
  • Nginx高可用方案 转载
    准备工作192.168.16.128192.168.16.129两台虚拟机。安装好Nginx安装Nginx更新yum源文件:rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-......
  • docker安装nginx
    1.搜索nginxdockersearchnginx建议去dockerhub,去看一下帮助信息,版本等呀2.拉取镜像dockerpullnginx3.启动镜像dockerrun-d--namenginx01-p3344:80ngi......
  • nginx与其他容器如何通讯
    代理的网址上一章我们有提到default.conf要代理的容器网址问题,现在展开详细说1、启动要代理的容器(我以mvc项目为例)跳转上一章:https://www.cnblogs.com/long-live/p/dn.ht......
  • nginx的nginx.conf配置文件如何修改代理的路由
    方法location/api/{set$request_uri_new$request_uri;if($request_uri~"^/api/(.*)$"){set$request_uri_new/$1;}proxy_passhtt......
  • (AtCoder Beginner Contest 287)(D 字符串前后缀合并匹配)(E Trie求最长公共前缀(LCP)
    D-MatchorNot(字符串前后缀合并匹配)题目大意:给定两个字符串S和T,对于每个x=0,1,2...|T|求S的子串(前x个字符和后|T|-x个字符在不改变顺序的情况下组成)是否与T相......