Go1.9.3跑GinDemo

news2024/11/25 13:43:46

Gin

1. 简介

1.1. 介绍

  • Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点

  • 对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单,性能也非常不错

  • 借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范

1.2 安装

要安装Gin软件包,您需要安装Go并首先设置Go工作区。

1.首先需要安装Go(需要1.10+版本),然后可以使用下面的Go命令安装Gin。

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

go get -u github.com/gin-gonic/gin
go: go.mod file not found in current directory or any parent directory.
        'go get' is no longer supported outside a module.
        To build and install a command, use 'go install' with a version,
        like 'go install example.com/cmd@latest'
        For more information, see https://golang.org/doc/go-get-install-deprecation
        or run 'go help get' or 'go help install'.

 简单建立一个go.mod 文件,我这里是直接在hello目录下建立一个gindemo.go文件。进行包下载

GOROOT=/usr/local/go #gosetup
GOPATH=/Users/apple/go #gosetup
/usr/local/go/bin/go mod tidy #gosetup
go: finding module for package github.com/gin-gonic/gin
go: found github.com/gin-gonic/gin in github.com/gin-gonic/gin v1.8.1

提示是已经下载最新的包是1.8.1版本的 

2.将其导入您的代码中:

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

3.(可选)导入net/http。例如,如果使用常量,则需要这样做http.StatusOK。

import "net/http"

1.3. hello word for gin demo

package main

import (
    "net/http"

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

func main() {
    // 1.创建路由
   r := gin.Default()
   // 2.绑定路由规则,执行的函数
   // gin.Context,封装了request和response
   r.GET("/", func(c *gin.Context) {
      c.String(http.StatusOK, "hello World for gindemo!")
   })
   // 3.监听端口,默认在8080
   // Run("里面不指定端口号默认为8080") 
   r.Run(":9000")
}

 执行后浏览器打开,就可以发现已经建立一个简单的httpserver服务,并且返回hello world for gindemo!

Restful风格的API

  • gin 框架中采用的路由库是基于httprouter做的

  • gin支持Restful风格的API

  • 即Representational State Transfer的缩写。直接翻译的意思是"表现层状态转化",是一种互联网应用程序的API设计理念:URL定位资源,用HTTP描述操作

1.获取文章 /blog/getXxx Get blog/Xxx

2.添加 /blog/addXxx POST blog/Xxx

3.修改 /blog/updateXxx PUT blog/Xxx

4.删除 /blog/delXxxx DELETE blog/Xxx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/52992.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux部署WordPress(宝塔版)

宝塔手册宝塔安装 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh 宝塔配置 1.帮助命令:bt2.修改用户名(童心同萌):bt 63.修改密码(123456):bt 54.修改端口(888…

JWT详细介绍

文章目录1 jwt介绍1.1 什么是jwt1.2 使用场景1.2.1 授权1.2.2 信息交换1.3 JWT结构1.3.1 header1.3.2 payload1.3.3 signature 签名2 Python 实现2.1 手动编码2.2 jwt包3 校验 jwt5 js解析jwt1 jwt介绍 官网:https://jwt.io/ 本文以python来进行实战演示 1.1 什么…

KG-开源项目:CMeKG【利用自然语言处理与文本挖掘技术,基于大规模医学文本数据,以人机结合的方式研发的中文医学知识图谱】

CMeKG(Chinese Medical Knowledge Graph)是利用自然语言处理与文本挖掘技术,基于大规模医学文本数据,以人机结合的方式研发的中文医学知识图谱。 项目来源: 中文医学知识图谱CMeKG2.0版发布-自然语言处理实验室北京大…

iOS开发之打包上传到App Store——(一)各种证书的理解

OK,有日子没写iOS开发的相关文章啦,主要是最近的精力都没在这上面,不过既然产品已经快要出来了,就有必要了解一下各种证书啥的(众所周知iOS的一堆证书可是很让人头大呀),最近确实被这个搞得头大…

外汇天眼:随着美元贬值所有世界货币,每个国家都在为自己着想

没有迹象表明各国政府愿意合作,各国被迫靠自己的力量建立防御措施,抵御万能的美元的无情力量。 在美联储的鹰派政策、美国经济强劲以及寻求市场波动避险的投资者的支持下,美元兑所有其他货币正在稳步走强,创下数十年来的最大涨幅。…

信号发生器不会用?一篇文章教会你

信号发生器是一种能提供各种频率、波形和输出电平电信号的设备。在测量各种电信系统或电信设备的振幅特性、频率特性、传输特性及其它电参数时,以及测量元器件的特性与参数时,用作测试的信号源或激励源。 1、信号发生器如何使用 选用与验电器相同电压等…

Gateway--服务网关

目录一、网关简介二、Gateway简介三、Gateway快速入门基础版增强版简写版四、Gateway核心架构基本概念执行流程五、断言内置路由断言工厂内置路由断言工厂的使用自定义路由断言工厂六、 过滤器局部过滤器内置局部过滤器内置局部过滤器的使用自定义局部过滤器全局过滤器内置全局…

ROS MoveIT2(humble)安装总结

版本 系统版本:ubuntu22.04 ROS2版本:humble Moveit版本:moveit2-humble 安装 ROS 2 和 Colcon 如果您在接下来的几个步骤中遇到错误,一个好的开始是返回并确保您已正确安装 ROS 2。用户通常忘记的一个是获取 ROS 2 安装本身。…

手写Redux(一):实现Redux

在React中,组件和组件之间通过props传递数据的规范,极大地增强了组件之间的耦合性,而context类似全局变量一样,里面的数据能被随意接触就能被随意修改,每个组件都能够改context里面的内容会导致程序的运行不可预料。 …

复习计算机网络——第二章记录(2)

理解一些基本概念: 1、数据(data)是运送信息的实体。 2、信号(signal)是数据的电气的或电磁的表现。 3、数据或信号可以是模拟的,也可以是数字的。 4、所谓“模拟的”就是连续变化的。 5、所谓“数字的…

后端微服务项目中出现的问题整理2022年11月

后端微服务项目中出现的问题整理2022年11月后端微服务项目中出现的问题整理2022年11月1.SpringBoot-Mail-Service(Spring邮箱服务)报错截图解决办法方法一:使用Resource注解方法二:添加(requiredfalse)Resource和Autowired区别2.反…

基于plc的自动洗碗机的设计(西门子)

目 录 摘 要 I Abstract II 1绪论 1 1.1全自动洗碗机的发展 1 1.2全自动洗碗机概述 2 1.2.1 全自动洗碗机的分类 2 1.2.2 全自动洗碗机的基本结构 3 1.2.3 全自动洗碗机的工作原理 4 1.3研究主要内容 4 2 全自动洗碗机机械设计 6 2.1 整体方案设计 6 2.2 各重要部件设计 6 2.2.…

TF-IDF

2.TF - IDF:作用:提取出来一句话中词的重要性,分成两个部分: tf: 词频(某一类中词条出现的次数 / 该类中所有词条数目) idf: 逆文档频率(作用:去掉逗号,的等)公式:idf l…

【第一阶段:java基础】第8章:面向对象编程高级-2(P394-P423)final、抽象类、接口、内部类

本系列博客是韩顺平老师java基础课的课程笔记,吐血推荐的一套全网最细java教程,获益匪浅 韩顺平java课程 目录(P394-P423) 1 final 2 抽象类 3 接口 4 内部类 1️⃣ 局部内部类 2️⃣🍓匿名内部类 3️⃣成员内部类 4️…

C++,顺序结构,选择结构,循环结构

目录 1.选择结构 1.1if语句 1.1.1单行if语句 1.1.2多行格式的if语句 1.1.3多条件if语句 1.1.4嵌套if语句 1.2三目运算符 1.3switch语句 2.循环结构 2.1while循环 2.2do..while语句 2.3for循环语句 2.4嵌套循环 3.跳转语句 3.1.1break 3.1.2continue 3.1.3goto语句 …

UDP-GlcNAc,UDPAG,尿苷二磷酸-N-乙酰基葡萄糖胺,UDP-N-乙酰葡糖胺

产品名称:UDP-GlcNAc 尿苷二磷酸-N-乙酰基葡萄糖胺,UDPAG,UDP-N-乙酰葡糖胺 别 名:5-二磷酸尿嘧啶核苷-N-乙酰半乳糖胺二钠盐;5′-二磷酸尿嘧啶核苷-N-乙酰半乳糖胺二钠盐 英文名:uridine 5-diphospho-N-acetyl-*g…

在家做副业可以做什么,做自媒体应该选择什么平台

今天分享五个,即使你在家里没有收入,自己就可以做的自媒体副业,给自己带来一些收益。 ​ 第一个自媒体副业是公众号,很多人多人都知道。很多人也喜欢看别人写的公众号。 其实微信官方账号注册很简单,不需要花钱有个邮…

Huggingface Transformers各类库介绍(Tokenizer、Pipeline)

目录前言0、transformers的安装以及介绍0-1、 介绍0-2、安装一、分词——transformers.AutoTokenizer1-0、相关参数介绍(常用参数介绍)1-1、加载、保存1-2、使用以及原理二、黑盒子——transformers.pipeline2-0、pipeline怎么理解?2-1、目前…

SpringCloud:Gateway之限流、熔断

目录 一、服务雪崩简介及压测实践演示 ​编辑 二、sentinel简单模式之流控QPS案例 什么是Sentinel ​ 安装Sentinel控制台 三、sentinel流控简单模式之并发线程数案例 四、sentinel流控之关联模式&链路模式 关联模式 链路模式 五、sentinel降级之平均响应时间&…

Mybatis入门

详细的Mybatis介绍/使用,可以访问: 地址:mybatis – MyBatis 3 | 简介 目录 一、Mybatis介绍 二、依赖 三、什么是rowmapper 四、Mybatis demo 演示 4.1 背景 4.2 JDBC执行sql的流程 &Mybatis 关键要素 4.3 项目的整体结构&…