热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ginweb开发入门

Day01简单部署Gin框架ps:首次执行的时候我是mac默认的go1.12版本,然后就很多错误。后来换成go1.14.5版本,执行下方

Day01 简单部署Gin框架

ps:首次执行的时候我是mac默认的go 1.12版本,然后就很多错误。后来换成go 1.14.5版本,执行下方教程就好啦。

01.安装Go语言开发环境

使用mac命令行,brew工具直接安装,代码如下:

brew install go

运行完成没有报错就是安装成功

02.安装Gin框架

使用官方提供的命令安装。(前提:需要设置go全局的path变量,自行查找方案,不做过多介绍)

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

这里直接运行命令的话会出现 连接超时报错。因为get的资源中包含一些其他的资源引用,这部分正好处于google包中或其他国内不能访问的包中。
解决方法:
设置GOPROXY变量,用于获取这部分资源,然后get到本地。

使用 go env 命令查看 GOPROXY变量的值。
执行以下命令,打开modules 然后设置goproxy代理

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct

完成上述操作后,再执行第一步的go get命令,没有报错就证明下载成功。可以到gopath目录下查找gin包。

03.部署Gin 简单web页面

首先,构建go源码文件,导入gin包

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

然后根据官网给的example,如下:

package mainimport "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 (for windows "localhost:8080")
}

最后,执行go run xxx.go执行
注意:最后执行的时候大概率会报错

main.go:3:8: cannot find module providing package github.com/gin-gonic/gin: working directory is not part of a module

具体原因是因为go mod 本身的资源管理问题,在开启modules的时候,资源路径改变,导致不能正确访问到gin包。导致go代码中 import 的时候没有引入gin包。

解决方法:在当前执行代码的目录下,执行以下命令。

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

这个好像是类似于nodejs的npm包管理工具,了解不多不做过多描述,以免误导各位。

小技巧:使用go build 的时候可以使用-o参数指定生成的文件名称
gin_test 自定义的生成文件名称
gin_demo.go程序源代码

go build -o gin_test gin_demo.go

关于Gin API方面,官网提供Using GET, POST, PUT, PATCH, DELETE and OPTIONS

func main() {// Creates a gin router with default middleware:// logger and recovery (crash-free) middlewarerouter := gin.Default()router.GET("/someGet", getting)router.POST("/somePost", posting)router.PUT("/somePut", putting)router.DELETE("/someDelete", deleting)router.PATCH("/somePatch", patching)router.HEAD("/someHead", head)router.OPTIONS("/someOptions", options)// By default it serves on :8080 unless a// PORT environment variable was defined.router.Run()// router.Run(":3000") for a hard coded port
}

值得一提的是,通过网址访问http://127.0.0.1:8080/ 默认使用的get请求,用其他的都会404,应该是前端请求时候要指定是post或者delete或其他的请求才能正确访问到。

好像是根据RESTful API接口风格来定义的,感兴趣的可以看下阮一峰老师的博文:
RESTful API 设计指南

在这里的话如果我们想要看其他请求的效果,可以使用postman api测试,选择请求方式,填写url地址就可以发起请求,然后看到返回的数据。
postman 原创截图

Gin框架官方文档:https://gin-gonic.com/docs/.


推荐阅读
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 本文探讨了 Objective-C 中的一些重要语法特性,包括 goto 语句、块(block)的使用、访问修饰符以及属性管理等。通过实例代码和详细解释,帮助开发者更好地理解和应用这些特性。 ... [详细]
  • 本文详细介绍了如何在 Spring Boot 应用中通过 @PropertySource 注解读取非默认配置文件,包括配置文件的创建、映射类的设计以及确保 Spring 容器能够正确加载这些配置的方法。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 题目Link题目学习link1题目学习link2题目学习link3%%%受益匪浅!-----&# ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
author-avatar
seazz2001
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有