golang的web框架Gin(一)---Gin的安装与初体验

2023-10-31

简介

1.1 介绍

Go世界里最流行的Web框架,Github上有32K+star。 基于httprouter开发的Web框架。 中文文档齐全,简单易用的轻量级框架。

  1. Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点
  2. 对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单,性能也非常不错
  3. 借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范
Gin特征:
  1. 速度快:基于基数树的路由,内存占用少。没有反射。可预测的API性能。 中间件支持:传入的HTTP请求可以由中间件链和最终操作处理。
  2. Crash—free:Gin可以捕获HTTP请求期间发生的panic并恢复它。这样,你的服务器将始终可用。
  3. JSON验证:Gin可以解析和验证请求的JSON-例如,检查所需值的存在
  4. 路由分组:更好地组织您的路线。需要授权与不需要授权,不同的API版本…此外,组可以无限嵌套,而不会奖低性能。 错误管理
  5. Gin提供了一种方便的方法来收集HTTP请求期间发生的所有错误。最终,中间件可以将它们写入日志文件、数据库并通过网络发送它们。
  6. 内置渲染:Gin为JSON、XML和HTML渲染提供了一个易于使用的API
  7. 可扩展:创建一个新的中间件非常简单,只需查看示例代码即可

1.2 安装

要安装Gin软件包,您需要安装Go并首先设置Go工作区。
1.首先需要安装Go(需要1.10+版本),然后可以使用下面的Go命令安装Gin。

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

如果下载的时候失败,可能需要进行代理设置

  • Windows 下
# 设置goproxy.io代理
go env -w GOPROXY="https://goproxy.io"
# 设置GO111MOUDLE
go env -w GO111MODULE="on"
  • mac/linux下
# 设置goproxy.io代理
export GOPROXY=https://goproxy.io
# 设置GO111MOUDLE
export GO111MODULE=on 

2、查看go.mod(相当于maven的pom.xml)
看看依赖是否下载成功
在这里插入图片描述
3、编写简单的实例、验证gin框架是否搭建成功

package main

import (
	"encoding/json"
	"github.com/gin-gonic/gin"
)
func main() {
	//创建一个服务
	ginServer := gin.Default()

	//访问地址,处理我们的请求 Request Response
	//gin.Context,封装了request和response
	ginServer.GET("/hello", func(context *gin.Context) {
		context.JSON(200, gin.H{
			"msg": "hello world",
		})
	})
	//服务器端口
	//Run("里面不指定端口号默认为8080") 
	ginServer.Run(":8081")

在浏览器进行测试:
在这里插入图片描述
ok

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

golang的web框架Gin(一)---Gin的安装与初体验 的相关文章

随机推荐

  • [转]一文看懂区块链架构设计 - 从概念到底层技术

    前言 区块链作为一种架构设计的实现 与基础语言或平台等差别较大 区块链是加密货币背后的技术 是当下与VR虚拟现实等比肩的热门技术之一 本身不是新技术 类似Ajax 可以说它是一种技术架构 所以我们从架构设计的角度谈谈区块链的技术实现 无论你
  • 广西人才网实习信息爬取与数据库存储实战

    广西人才网实习信息爬取与数据库存储实战 https www gxrc com 大家好 我是W 项目介绍 本项目为CrawlSpider结合MySQL MongoDB爬取求职网站信息的项目 目标是将网站指定分类下的招聘信息 包括 职位名称 公
  • Jupyter Notebook导入和删除虚拟环境

    在Jupyter Notebook中加载虚拟环境 比如现在我创建了一个虚拟环境名为pytorch 那么首先我先进入虚拟环境 activate pytorch Linux下需要使用source activate 然后运行 conda inst
  • Android init.rc整理

    AIL概述 init rc由AIL语言编写而成 可以参考system core init README md来学习AIL语法相关知识 不同Android版本关于AIL的说明存在一些细微差异 但基本语法和总的思路是不变的 往往我们可以先查看对
  • 2021哈工大机器翻译实验室经验贴(回忆版)

    哈工大机器翻译实验室 有两轮 一轮笔试 一轮面试 第一轮笔试题 根据本人的回忆 3道简答 5道编程题 60分钟 一 简答题 1 Windows下的软件Office 在Ubuntu环境下能否运行 说明理由 2 已知账户名和账户密码 说明登录到
  • 反射与线程间通讯

    反射 一 在运行状态中 对于任意一个类 都能够获取到这个类的所有属性和方法 对于任意一个对象 都能够调用它的任意一个方法和属性 包括私有的方法和属性 这种动态获取的信息以及动态调用对象的方法的功能就称为java语言的反射机制 通俗点讲 通过
  • 设置linearlayout最大高度_数据中心:主要设备用房高度需求及建筑层高规划

    主要设备用房高度需求 数据中心主要设备用房为35KV开闭所 10KV开闭所 低压变配电房 动力 低压变配电房 IT UPS 柴油发电机组 冷冻机房 IT机房模块间等 35KV开闭所通常单独设置不在IT机房大楼内布置 本文不再讨论 各设备用房
  • Nginx服务优化

    配置nginx隐藏版本号 隐藏nginx版本号 避免安全漏洞泄漏 方法一 修改配置文件法 root www conf vim usr local nginx confnginx conf 17 http 18 include mime ty
  • 图解---散列表(hash表)的基本原理以及hash冲突(碰撞)--易懂版

    图解 散列表 hash表 的基本原理以及hash冲突 碰撞 易懂版 散列表为什么诞生 它用于做什么 先说说数组 数组的优点是查找比较快 但是添加和删除效率比较低 再说说链表 链表的优点是添加和删除效率比较快 相对于数组 但是遍历需要一个指针
  • 一种软件网络验证方式的实现 + 网络验证转本地验证的一种实现(附VC源码)...

    目前很多软件都是通过网络验证来实现的 一种比较流行的方式便是把服务器端 如验证网页 放在服务器上 软件为客户端 当软件注册或启动时通过网络与服务器端进行数据交换 重新实现验证的目的 个人觉得网络验证将是一种趋势 做得好的网络验证方式将是对软
  • Spring 源码 事件监听

    2019独角兽企业重金招聘Python工程师标准 gt gt gt spring 监听器 一 事件监听机制概述 二 事件监听机制结构 三 Spring监听机制架构 Spring的Application拥有发布事件并且注册事件监听器的能力 拥
  • python验证码识别MuggleOCR通用识别使用

    先来看看MuggleOCR简介 白嫖 这是一个为麻瓜设计的本地OCR模块 只需要简单几步操作即可拥有两大通用识别模块 让你在工作中畅通无阻 这套模型是基于 https github com kerlomz captcha trainer 训
  • JSP注释(4种)

    说到注释 相信大家肯定都不陌生 它是对程序代码的解释和说明 注释可以提高代码的可读性 让他人能够更加轻松地了解代码 从而提高团队合作开发的效率 在 JSP 中可以使用以下 4 种注释 HTML 注释 带有 JSP 表达式的注释 隐藏注释 脚
  • 登录和注册的基本实现,超简单!

    前序 相信有很多的人在刚刚做项目的实现 登录与注册功能的实现是基本的要求 要是刚刚开始写的小伙伴肯定会有很多的困惑 这里我介绍一下自己的写法 希望能帮到你 也希望能免费点个小 这里就以之前我写的一个为例 大家可以根据自己的规则来更改 一 登
  • python 短路法提高二叉堆插入效率

    在学习 problem solving with algorithms and data structure using python 中的二叉堆时 其插入数据方法是将这个数据放在列表的尾部 然后通过一次次与父节点进行比较 并且交换 实现顺
  • 用Log4j 2记录日志

    说明 maven工程中增加对Log4j 2的依赖 下面代码示例的maven工程中的pom xml文件中需要增加对Log4j 2的依赖
  • -moz-transform:rotate()

    目前越来越多的浏览器兼容CSS3标准了 就连IE浏览器老大哥也开始向CSS3低头 微软宣布IE9浏览器支持更多的CSS3属性 IE9更注重HTML5标准 不过CSS3里有一个使对象旋转的属性transform rotate 号称兼容CSS3
  • 2023高教社杯 国赛数学建模B题思路 - 多波束测线问题

    1 赛题 B 题 多波束测线问题 单波束测深是利用声波在水中的传播特性来测量水体深度的技术 声波在均匀介质中作匀 速直线传播 在不同界面上产生反射 利用这一原理 从测量船换能器垂直向海底发射声波信 号 并记录从声波发射到信号接收的传播时间
  • springboot定时任务

    1 配置 在主函数加 EnableScheduling 定时任务 package com biubiu import org springframework boot SpringApplication import org springf
  • golang的web框架Gin(一)---Gin的安装与初体验

    简介 1 1 介绍 Go世界里最流行的Web框架 Github上有32K star 基于httprouter开发的Web框架 中文文档齐全 简单易用的轻量级框架 Gin是一个golang的微框架 封装比较优雅 API友好 源码注释比较明确