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)

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

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

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

    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日
    浏览(20)
  • gin 框架中的 gin.Context

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

    2024年02月14日
    浏览(14)
  • 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日
    浏览(20)
  • G0第21章 :gin框架介绍、RESTful API、Gin渲染

    G0第21章 :gin框架介绍、RESTful API、Gin渲染

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

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

    解决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日
    浏览(12)
  • [golang gin框架] 39.Gin商城项目-微服务实战之微服务架构

    [golang gin框架] 39.Gin商城项目-微服务实战之微服务架构

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

    2024年02月12日
    浏览(17)
  • GIN框架介绍以及使用

    GIN框架介绍以及使用

    Gin 是一个用Go语言编写的web框架。它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍。 如果你是性能和高效的追求者, 你会爱上Gin,而且现在大多数企业都在使用Gin框架,反正学一学总没有错。 Go世界里最流行的Web框架,Github上有32K+star。

    2024年02月22日
    浏览(7)
  • Gin框架

    环境: https://goproxy.cn,driect github.com/gin-gonic/gin Gin 是一个用 Go (Golang) 编写的 Web 框架。 它具有类似 martini 的 API,性能要好得多,多亏了 httprouter,速度提高了 40 倍。 如果您需要性能和良好的生产力,您一定会喜欢 Gin。 在本节中,我们将介绍 Gin 是什么,它解决了哪些问题,

    2023年04月17日
    浏览(9)
  • gin框架-简单路由

    本文已参与「新人创作礼」活动,一起开启掘金创作之路。 路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET、POST 等)组成的,涉及到应用如何响应客户端对某个网站节点的访问。 这就不得不提restful架构了,在 RESTful 架构中,每个网址代表一种资源(也是每一个

    2023年04月22日
    浏览(9)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包