精选文章 Gin框架

Gin框架

作者:程序猿工会主席 时间: 2021-02-05 09:56:56
程序猿工会主席 2021-02-05 09:56:56
【摘要】中文文档 
https://github.com/skyhee/gin-doc-cn 
  
脚手架包目录 
配置文件放到config包下,其他需要依赖config的包支持依赖,不需要从main.go一级一级的传递下去 
  
1.URL中带参数,如 Get /user/10000   ,则获取的id是10000 
group := engine.Group("user")
group.GE...

中文文档

https://github.com/skyhee/gin-doc-cn

 

脚手架包目录

配置文件放到config包下,其他需要依赖config的包支持依赖,不需要从main.go一级一级的传递下去

 

1.URL中带参数,如 Get /user/10000   ,则获取的id是10000

group := engine.Group("user")
group.GET("/:user_id", controller.GetUserHandler)
id := c.Param("user_id")

2.gin 可以使用middleware,你在middleware里面解析token,拿到user_id 等等不就可以了嘛,这样是比较正规的

engine := gin.Default() //默认启动,包含 Logger、Recovery 中间件

3. 定义gin的上下文变量

func CustomRouterMiddle1(c *gin.Context)  {	
	//在gin上下文中定义一个变量
	c.Set("example1", "CustomRouterMiddle1")
	//在处理方法中读取
	//strAccountId := c.Keys["example1"].(string) 或者使用c.GetString("example1")
	//请求之前
	c.Next()
}

4.获取post的原始字符串

	data, err := c.GetRawData() if err!=nil { //log.Fatalln(err)
	} fmt.Printf("recv post data:\n %s\n", data)

5.接收post body中传递数组

//服务端解析
userId := c.PostFormArray("userId")

//客户端发送
func httpPostForm() {
	users := []string{"1000", "1001","1002"} resp, err := http.PostForm("http://127.0.0.1:18000/group/create", url.Values{"userId": users , "groupName": {"123"}}) if err != nil { // handle error } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { // handle error } fmt.Println(string(body)) 
}

6. 加载html,css资源

package main
import (
	"github.com/gin-gonic/gin" "net/http"
)

func main() { r := gin.Default()
	r.LoadHTMLFiles("./static/html/index.html") //加载主页
	r.StaticFS("/static", http.Dir("./static")) //加载./static/css/* 等资源文件,如果不加载css,也可以不调用 r.GET("/", func(c *gin.Context) { c.HTML(200, "index.html", "") }) r.Run("0.0.0.0:8080")
}
 
		 <script></script>
	
	<script></script>
	<script></script> xingming: 
		



First Name:
Last Name:

<script> var app = angular.module('myApp', []); app.controller('apiCtrl', function($scope) { $scope.name= "GetName"; $scope.url= "http://127.com"; $scope.firstName= "John"; $scope.lastName= "Doe"; }); </script>

 

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:python3用suds调用webService, 当参数是对象数组时

下一篇:emqtt,订阅其它客户端上下线消息方法

CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。

您可能感兴趣 换一换

  • 实现.net框架带有无限参数的WriteLine()函数

    .net Framework库中的Console.WriteLine最多只支持3个参数,使用起来非常不方便,虽然C++支持一个无限参数的WriteLine,但是VB和C#和其他大量语言都不支持。现在,我编写了一个VB的函数,他利用VB、C#和JScript中参数数组的功能,实现了无限参数的WrtieLine。用VB编写的原因是VB含有许多简单的字符串函数,可以大大简化程序。而编译为组件后,C...

  • Winsock编程框架

    Microsoft的Windows Sockets API是Windows下的网络应用程序接口,为了适用于Windows下的消息机制和异步的I/O选择操作,Windows Sockets API在功能上扩充了将近20个函数,其中扩充的部分均冠以前缀WSA(Windows Sockets Asynchronous),如WSAStartup、WSAClean等,充分体现了Widnows的优越性。...

  • Microsoft .NET 框架 FAQ

    Microsoft .NET 框架 FAQ Microsoft Corporation 2001 年 7 月 摘要:本文包含有关 Microsoft .NET 和 Microsoft .NET 框架的常见问题。(共 15 页打印页) 内容 概念性问题运行库技术问题    术语    程序集    应用程序部署和隔离    垃圾回收    远程处理    互操作性    安全性 概念性问题 什...

  • OLE SDK——框架界面(一)

    IOleInPlaceFrame IOleInPlaceFrame界面控件着容器的顶级框架窗口。控件涉及允许容器去插入它的菜单组到复合菜单中,在适当的窗口框架中安装复合菜单,并从复合菜单移去容器的菜单标记。它设置和显示状态文本到相关的在位(in-place)对应。它也激活或禁止框架的非模式对话框,并预期的为容器框架翻译加速键。 什么时候实现 如果你要写一个被在位(in-place)激活的容器...

  • OLE SDK——框架界面(七):IOleInPlaceFrame::TranslateAccelerator

    IOleInPlaceFrame::TranslateAccelerator当一个对象在位激活的时候,有意的为容器的框架翻译加速键。HRESULT TranslateAccelerator( LPMSG lpmsg, //指向结构 WORD wID //命令标识值);参数lpmsg 包含键信息的MSG结构指针 wID 命令标识值在容器提供的加速表中对应的键。容器应该使用这个值替代重新翻...

  • OLE SDK——框架界面(二):IOleInPlaceFrame::SetStatusText

    IOleInPlaceFrame::SetStatusText在容器的框架窗口状态行设置和显示关于在位(in-place)对象的状态文本。HRESULT SetStatusText( LPCOLESTR pszStatusText //指向显示消息的指针);参数pszStatusText 包含要显示消息的以空字符结束的字符串的地址。 返回值这个方法支持标准返回值E_FAIL,E_INVA...

  • OLE SDK——框架界面(三):IOleInPlaceFrame::RemoveMenus

    IOleInPlaceFrame::RemoveMenus给定容器一个从在位(in-place)复合菜单中移去它的菜单标记的机会。HRESULT RemoveMenus( HMENU hmenuShared //在位复合菜单的句柄);参数hmenuShared 在位复合菜单的句柄,它是被调用IOleInPlaceFrame::InsertMenus和WindowsInsertMenu函数...

  • 软件产品线实践框架-Version 3.0(简介)

    一个产品线就是一套产品,它们具有共同的特点,能够满足特定市场和特定任务的特殊需求。产品线将有希望成为新世纪的主流软件生产方式。产品的灵活性成为市场的新宠,产品线实现了那种为满足特定顾客或者顾客群需求的精心设计系统的希望。从开发者角度来看,产品线技术成功的原因是因为能够利用产品所具有的共性来获得产品上的经济效益。 当然,在制造领域产品线早就是司空见惯,比如波音,福特,戴尔,甚至卖当劳。它们利用...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
Gin框架介绍:华为云为您免费提供Gin框架在博客、论坛、帮助中心等栏目的相关文章,同时还可以通过 站内搜索 查询更多Gin框架的相关内容。| 移动地址: Gin框架 | 写博客