首页 > 其他分享 >go语言学习-gin框架学习笔记-1

go语言学习-gin框架学习笔记-1

时间:2023-04-10 23:33:20浏览次数:42  
标签:http name 学习 action func go gin main

gin是一个golang的微框架,封装比较优雅,api友好,源码注释比较明确,具有快速灵活,容错方便等特点,对于golang而言,web框架的依赖远要比python,java之类的要小,自身的net/http足够简单,性能也非常不错。

安装

go get -u github.com/gin-gonic/gin //安装
import "github.com/gin-goinc/gin"  //导入

基本示例

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!")
   })
   // 3.监听端口,默认在8080
   // Run("里面不指定端口号默认为8080") 
   r.Run(":8000")
}

go语言学习-gin框架学习笔记-1_传递参数

gin路由

package main

import (
    "net/http"

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

func main() {
    r := gin.Default()
    r.GET("/", func(c *gin.Context) {
        c.String(http.StatusOK, "hello word")
    })
    r.POST("/xxxpost",getting)
    r.PUT("/xxxput")
    //监听端口默认为8080
    r.Run(":8000")
}

go语言学习-gin框架学习笔记-1_传递参数_02


API参数

//通过context的param方法来获取api参数

package main

import (
    "net/http"
    "strings"

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

func main() {
    r := gin.Default()
    r.GET("/user/:name/*action", func(c *gin.Context) {
        name := c.Param("name")
        action := c.Param("action")
        //截取/
        action = strings.Trim(action, "/")
        c.String(http.StatusOK, name+" is "+action)
    })
    //默认为监听8080端口
    r.Run(":8000")
}

go语言学习-gin框架学习笔记-1_传递参数_03

URL参数

URL参数可以通过DefaultQuery()或者 Query()方法获取,DefaultQuery()若参数不存在,返回默认值,Query()若不存在,返回空

package main

import (
    "fmt"
    "net/http"

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

func main() {
    r := gin.Default()
    r.GET("/user", func(c *gin.Context) {
        //指定默认值
        //http://localhost:8080/user 才会打印出来默认的值
        name := c.DefaultQuery("name", "羊草")
        c.String(http.StatusOK, fmt.Sprintf("hello %s", name))
    })
    r.Run()
}

不传递参数

go语言学习-gin框架学习笔记-1_传递参数_04

传递参数

go语言学习-gin框架学习笔记-1_github_05

标签:http,name,学习,action,func,go,gin,main
From: https://blog.51cto.com/u_11555417/6181600

相关文章

  • 区块链学习(9)-自定义修饰词modifier
    在Solidity中,修饰词(modifier)是一种代码重用和逻辑抽象的方法,用于修改函数的行为。它可以在函数执行前进行预处理(如检查条件、权限等),或在函数执行后进行后处理。修饰词在智能合约中非常有用,尤其是用于访问控制、状态检查和重入保护等场景。修饰词定义和使用:要定义一个修饰词,需要使用......
  • Linux环境下nginx安装详细教程,一步步装上nginx
    本人安装Nginx环境为:CentOS7.9 下载安装包下载Nginx安装包Linux版:Nginx官网下载:https://nginx.org/en/download.html下载Stableversion(即稳定版) 上传安装包将压缩包放入系统: 解压:tar-zxvfnginx-1.22.1.tar.gz解压成功: 编译安装执行./configure配置命令:这里提示./config......
  • unittest学习笔记
    unittest单元测试框架是受到JUnit的启发,与其他语言中的主流单元测试框架有着相似的风格。其支持测试自动化,配置共享和关机代码测试。支持将测试样例聚合到测试集中,并将测试与报告框架独立。官方文档:https://docs.python.org/zh-cn/3/library/unittest.html......
  • [golang]使用logrus自定义日志模块
    简介logrus是一个第三方日志库,性能虽不如zap和zerolog,但方便易用灵活。logrus完全兼容标准的log库,还支持文本、JSON两种日志输出格式。特点相较于标准库,logrus有更细致的日志级别,从高到低分别是:trace>debug>info>warn>error>fatal>panic支持自定义日志格式,内置支......
  • 学习内容
    在今天我学会了分页查询的操作:以下是部分代码:index.jsp<%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%><%@pageimport="java.util.ArrayList"%><%@pageimport="bean.policy"%><%--CreatedbyIn......
  • Python 学习 01 硬件
                                 计算机的硬件组成控制器:计算机的指挥系统(类似人脑)运算器:数学运算和逻辑运算(类似人脑)储存器:分为内存和外存       内存:相当于人脑的短期记忆,速度快,存储能力差,只能识......
  • go语言内存对齐
    go语言内存对齐什么是内存对齐内存对齐,是代码编译后在内存的布局和使用方式。当一个内存地址a是n字节的倍数(其中n是2的幂)时,内存地址a被称为n字节对齐。编译器会将数据按照特定的规则,把数据安排到合适的存储地址上,并占用合适的地址长度比如:存储int32位和int64位的数据时没有......
  • gin框架中间件
    前言:中间件middleware,也是一种处理器。主要用于在多个业务逻辑中间重用代码,例如认证校验,日志处理等。中间件需要附加在路由上,使用router.Use()方法 正文:gin.Default()初始化路由对象时,会随之附加两个中间件Logger和Recoverygin.New() 创建空白路由 没有任何中间......
  • 【THM】Burp Suite:Repeater(Burp Suite-重放器)-学习
    本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/burpsuiterepeater本文相关内容:了解如何使用Repeater在BurpSuite中重放请求。什么是Repeater?在我们开始使用Repeater之前,了解它的作用对我们会很有帮助。简而言之,BurpSuite的Repeater模块允许我们修改并......
  • 基础学习
    var,let和const区别共同点:都是用来声明变量 var:声明静态变量,可以在声明前引用const:声明常量,先声明后引用。初始的值不可更改let: 声明变量,先声明后引用。初始的值可更改......