Gin 框架入门实战系列(一)

这篇具有很好参考价值的文章主要介绍了Gin 框架入门实战系列(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

GIN介绍

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

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

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

Gin 最擅长的就是 Api 接口的高并发,如果项目的规模不大,业务相对简单,这个时候我们也推荐您使用 Gin。
当某个接口的性能遭到较大挑战的时候,这个还是可以考虑使用 Gin 重写接口。
Gin 的官网: Gin Web Framework (gin-gonic.com)

安装

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

1.下载并安装 gin:

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

2.将 gin 引入到代码中:

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

3.(可选)如果使用诸如 http.StatusOK 之类的常量,则需要引入 net/http 包:

import "net/http"

http.statusok就是状态码200

Gin 框架入门实战系列(一),# gin框架,gin

 基本路由

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

  • 地址为:https://github.com/julienschmidt/httprouter

路由概述 

路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET、POST 等)组成
的,涉及到应用如何响应客户端对某个网站节点的访问。
RESTful API 是目前比较成熟的一套互联网应用程序的 API 设计理论,所以我们设计我们的路由的
时候建议参考 RESTful API 指南。
GET(SELECT)
从服务器取出资源(一项或多项)
POST(CREATE)
在服务器新建一个资源
PUT(UPDATE)
在服务器更新资源(客户端提供改变后的完整资源)
DELETE(DELETE) 
从服务器删除资源

简单的路由配置 

测试我使用的是Apipost7测试工具

	route.GET("/",func (c *gin.Context){
		c.String(http.StatusOK,"Get获取页面信息")
	})

gin.Context,封装了request和response

package main
// (可选)如果使用诸如 http.StatusOK 之类的常量,则需要引入 net/http 包:
import (
	"github.com/gin-gonic/gin"
	"net/http"
	
)

func main(){

	//创建一个默认路由
	route := gin.Default()
	//配置路由
	// gin.Context,封装了request和response
	route.GET("/",func (c *gin.Context){
		c.String(http.StatusOK,"Get获取页面信息")
	})

	route.GET("/ping",func(c *gin.Context){
		c.String(200,"可配置多个GET方法来进行测试")
	})
	route.POST("/add",func (c *gin.Context){
		c.String(http.StatusOK,"post方法主要用于在服务器新建一个资源")
	})
	route.PUT("justice",func(c *gin.Context){
		c.String(200,"put方法在服务器更新资源,客户端提供改变后的完整资源")
	})
	route.DELETE("/delete",func(c *gin.Context){
		c.String(200,"从服务器删除资源")
	})
	//定义监听的端口
	route.Run(":8210")
}

Gin 框架入门实战系列(一),# gin框架,gin

 Gin 框架入门实战系列(一),# gin框架,gin

Gin 框架入门实战系列(一),# gin框架,gin

Gin 框架入门实战系列(一),# gin框架,gin

Gin 框架入门实战系列(一),# gin框架,gin

c.String() c.JSON() c.JSONP() c.XML() c.HTML()

返回一个字符串

r.GET("/",func(ctx *gin.Context) {
		ctx.String(http.StatusOK,"%v","返回的字符串")
	})

Gin 框架入门实战系列(一),# gin框架,gin

返回一个 JSON 数据 

	r.GET("/json" ,func(ctx *gin.Context) {
		ctx.JSON(http.StatusOK,map[string]interface{}{
			"title" :"地区",
			"city":"城市",
		})
	})
//gin.H其实就是封装的是map
	r.GET("/json1" ,func(ctx *gin.Context) {
		ctx.JSON(http.StatusOK,gin.H{
			"title" :"地区",
			"city":"城市",
			"province":"曹县",
		})
	})

gin.H其实就是封装的是map

Gin 框架入门实战系列(一),# gin框架,gin

Gin 框架入门实战系列(一),# gin框架,gin

Gin 框架入门实战系列(一),# gin框架,gin 搞一个结构体

package main
import(
	"net/http"

	"github.com/gin-gonic/gin"


)

type Structdemo struct{
	Name string `json:"name"`
	Age int		`json:"age"`
	Servant string `json:"servant"`
}

func main(){

	r.GET("/json2",func(ctx *gin.Context) {
		a := &Structdemo{
			Name: "卫宫士郎",
			Age: 19,
			Servant: "sabar",
		}
		ctx.JSON(http.StatusOK,a)
	})


}

 Gin 框架入门实战系列(一),# gin框架,gin

切换标题的操作

r.GET("/json3",func(ctx *gin.Context) {

	type People struct{
		Name string `json:"name"`
		Servant string	`json:"servant"`
	}
	b := &People{
		Name: "远坂凛",
		Servant: "archer",
	}
	ctx.JSON(http.StatusOK,b)
})

Gin 框架入门实战系列(一),# gin框架,gin

响应Jsonp请求

JSONP的原理是通过动态创建<script>标签,并设置其src属性为目标数据源的URL。目标数据源在服务端返回的响应数据需要用一个回调函数进行包裹,这样在客户端收到数据时,将会直接执行回调函数,从而将数据传递到客户端。这样就实现了在不同域之间获取数据的需求和跨域的限制。

    // http://localhost:8080/jsonp?callback=xxxx

	r.GET("/jsonp", func(ctx *gin.Context) {
		d := &Structdemo{
			Name: "卫宫士郎",
			Age: 19,
			Servant: "sabar",
		}
		ctx.JSONP(200, d)
	})

Gin 框架入门实战系列(一),# gin框架,gin文章来源地址https://www.toymoban.com/news/detail-682297.html

返回 XML 数据 

	r.GET("/xml", func(ctx *gin.Context) {
		ctx.XML(http.StatusOK,gin.H{
			"title":"页面",
			"information":123,
		})
	})

到了这里,关于Gin 框架入门实战系列(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GoWeb -- gin框架的入门和使用(2)

    书接上回,在gin的框架使用中,还有着许多方法以及它们的作用,本篇博客将会接着上次的内容继续记录本人在学习gin框架时的思路和笔记。 如果还没有看过上篇博客的可以点此跳转。 请求url: http://localhost:8080/user/save?addressMap[home]=BeijingaddressMap[company]=shanghai 一般我们使用

    2024年02月07日
    浏览(33)
  • Vue系列第五篇:Vue2(Element UI) + Go(gin框架) + nginx开发登录页面及其校验登录功能

       本篇使用Vue2开发前端,Go语言开发服务端,使用nginx代理部署实现登录页面及其校验功能。 目录 1.部署结构 2.Vue2前端 2.1代码结构 2.1源码 3.Go后台服务 3.2代码结构 3.2 源码 3.3单测效果 4.nginx 5.运行效果 6.问题总结   index.html !DOCTYPE html html   head     meta charset=\\\"utf-8\\\"     m

    2024年02月15日
    浏览(58)
  • gin 框架中的 gin.Context

    Context 是 gin 中最重要的部分。 例如,它允许我们在中间件之间传递变量、管理流程、验证请求的 JSON 并呈现 JSON 响应。 Context 中封装了原生的 Go HTTP 请求和响应对象,同时还提供了一些方法,用于获取请求和响应的信息、设置响应头、设置响应状态码等操作。 在 Gin 中,C

    2024年02月14日
    浏览(46)
  • Gin-swaggo为gin框架提供Swagger 文档

    官方: https://github.com/swaggo/gin-swagger 开始使用 为API方法增加注释,加在controller(api)层, See Declarative Comments Format. 运行下面命令下载swgo: Go 1.17后的版本, 使用  go get 安装可执行文件已被废弃 . 用 go install代替 : 在你的go项目根目录运行swga(上文下载的exe)(比方说  ~/root/go-project-nam

    2024年02月09日
    浏览(41)
  • G0第21章 :gin框架介绍、RESTful API、Gin渲染

    Web是基于HTTP协议进行交互的应用网络 Web就是通过使用浏览器/APP访问的各种资源 Gin是一个用Go语言编写的web框架。 它是一个类似于 martini但拥有更好性能的API框架, 由于使用了 httprouter,速度提高了近40倍。 如果你是性能和高效的追求者,你会爱上Gin Go世界里最流行的Web框架

    2024年02月06日
    浏览(41)
  • 解决GO安装gin框架(go get -u github.com/gin-gonic/gin)超时问题

    🍊gin框架github地址:https://github.com/gin-gonic/gin         按照官方文档安装gin,但是尝试了好几次,包括使用国内网络或者使用梯子,都超时失败了,爆了如下超时错误 🍊 解决方法如下 1、先查看go相关的配置 如上显示GOPROXY配置是https://proxy.golang.org,这个地址已经被墙了,

    2024年02月11日
    浏览(59)
  • [golang gin框架] 39.Gin商城项目-微服务实战之微服务架构

    单体架构在 中小企业内部 用的是非常多的,当 业务不复杂 , 团队规模不大 的时候,单体架构比微服务架构具有 更高的生产率 单体架构 当 业务比较复杂 , 并发量 比较大, 团队规模扩大的时候, 就需要引入微服务架构了,它比单体架构 具有 更高的生产率, 可以 节省成本 , 解

    2024年02月12日
    浏览(43)
  • golang微框架Gin

    Gin是一个golang的微框架,基于httprouter,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 Gin特征 速度快:基于基数树的路由,内存占用小,没有反射,可预测的APi性能 中间件支持 传入的http请求可以有中间件链和最终操作处理,例如:Logger,Aut

    2024年02月09日
    浏览(43)
  • Go(四)gin框架

    1.1、下载和安装gin 下载包:go get github.com/gin-gonic/gin 使用go mod管理包: 1)初始化 Go Modules :go mod init your_module_name,这将创建一个 go.mod 文件,记录你的项目的模块信息和当前依赖关系; 2)复制依赖包到vendor目录 :\\\"go mod vendor\\\" 会将项目的所有包复制到vendor目录中。这包括

    2024年01月25日
    浏览(40)
  • Web框架Gin

    Web框架Gin HTTP协议简介 Restful风格编程 golang http标准库 Golang标准库template HttpRouter Gin 简介 Gin实现用户登录 Gin请求参数 Gin表单处理 Gin数据绑定 Gin访问静态文件集成BootStrap框架 Gin使用中间件 使用Gin BasicAuth中间件 Gin cookie的使用 Gin 使用Session Gin 实现restful风格的CRUD Gin 实现路由

    2024年02月10日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包