go mod tidy 报错 invalid version: unknown revision 000000000000

go: finding module for package github.com/99designs/gqlgen/example/scalars/model
go: found github.com/99designs/gqlgen/example/scalars/model in github.com/99designs/gqlgen/example v0.0.0-20220208183958-9262b35865e4
go: github.com/99designs/gqlgen/example@v0.0.0-20220208183958-9262b35865e4 requires
        github.com/99designs/gqlgen@v0.0.0-00010101000000-000000000000: invalid version: unknown revision 000000000000

1.更新go.mod文件中的github.com/99designs/gqlgen版本:

打开项目的go.mod文件,找到指定github.com/99designs/gqlgen版本的行

require (
    github.com/99designs/gqlgen v0.0.0-00010101000000-000000000000
)

将此版本更改为有效版本,最好是可用的最新版本。您可以使用以下命令检查最新版本:

go list -m -versions github.com/99designs/gqlgen

使用正确的版本信息更新您的go.mod文件:

require (
    github.com/99designs/gqlgen v0.13.0
)

2.清除Go模块缓存:

有时,模块版本的问题可以通过清除Go模块缓存来解决。运行以下命令以清理模块缓存:

go clean -modcache

3.再次运行Run go mod tidy again:

更新你的go.mod文件并清除模块缓存后,再次运行go mod tidy:

go mod tidy

这应该可以通过更新项目依赖项中对github.com/99designs/gqlgen有效版本的引用来解决问题。

请记住将版本号替换为github.com/99designs/gqlgen的实际最新版本。

gin框架之GET、POST获取参数

1.获取GET请求参数

func GetUserInfo(c *gin.Context){
    // 获取get请求参数
    u := c.Query("username")  //此处获取的key值是再发请求的参数值
    address := c.Query("address")
    fmt.Println("拿到了用户名:",u)
    returnData = make(map[string]interface{})
    returnData["status"] = 200
    returnData["msg"] = "查询成功"
    userinfo = make(map[string]string)
    // 获取的数据即可返回到前端
    userinfo["name"] = u
    userinfo["age"] = "18"
    userinfo["address"] = address
    returnData["data"] = userinfo
    c.JSON(http.StatusOK, returnData)
}


2.获取POST请求参数---form-data类型

func addUser(c *gin.Context){
    //POST获取请求参数
    //form-data 获取请求参数
    u := c.PostForm("username")
    //如果没有获取到 address 则默认值为杭州
    address := c.DefaultPostForm("address", "杭州")
    c.String(http.StatusOK, "这是一个POST请求")
}

3.获取POST请求参数---JSON类型登录后复制 

//1.转成map
func addUserJson(c *gin.Context){
    jsonData,_ := c.GetRawData()
    //拿到json串之后,两种处理方法
    //1.转成map
    var m map[string]interface{}
    json.Unmarshal(jsonData, &m)
    //c.JSON(http.StatusOK, jsonData)
    fmt.Println("接收到的用户名是:",m["username"])
    c.JSON(http.StatusOK, m)
}

//2.赋值给结构体
type UserInfo struct{
    Username string `json:"username"`
    Age int         `json:"age"`
    Address string  `json:"address"`
}
func addUserstruct(c *gin.Context){
    userinfo := UserInfo{}
    if err := c.ShouldBindJSON(&userinfo); err != nil{
        //绑定失败
        fmt.Println("数据绑定失败:",err,Error())
        c.JSON(http.StatusOK,gin.H{
            "message": "参数格式不正确",
            "status": 500,
        })
    }else{
        c.JSON(http.StatusOK, userinfo)    
    }
}

参考:记一次go module的坑 - 简书

https://blog.51cto.com/u_13681992/7383776

当你在使用 Go 语言的 `go mod tidy` 或者其他涉及网络请求的 `go get`、`go build` 等命令时,可能会遇到 "tls: failed to verify certificate: x509: certificate signed by unknown authority" 的错误。这通常意味着 Go 安装过程中尝试连接到的第三方包的服务器提供的 SSL/TLS 证书不受信任。 这个问题通常是由于以下几个原因: 1. **自签发证书**:第三方仓库使用的是自签名证书,而不是常见的像 Let's Encrypt 这样的受信任证书颁发机构(CA)签发的证书。 2. **证书过期**:证书已经到期,导致无法验证。 3. **证书列表更新**:你的系统证书存储可能未及时更新,不包含该服务器的新证书。 解决这个问题有几种途径: - **忽略安全警告**:如果你确定这个证书是可信的,可以在运行 `go mod tidy` 之前临时禁用证书检查,但这种方式并不推荐长期使用,因为安全性会受到影响。可以这样做: ```sh GOINSECURE=1 go mod tidy ``` - **添加证书的信任**:如果是第三方仓库的问题,你需要手动导入其证书到你的系统证书存储。但这需要对操作系统的证书管理有一定的了解。 - **更新证书存储**:确保你的操作系统证书存储已更新至最新版本,可以使用 `sudo update-ca-certificates` (Linux) 或 `sccp -f cacert.pem /usr/local/share/ca-certificates` (macOS)。 - **更换镜像源**:如果可能的话,选择一个提供受信任证书的官方或者知名的 Go 包镜像源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lxw1844912514

你的打赏就是对我最大的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值