ICode9

精准搜索请尝试: 精确搜索
  • 快速认识并使用Gin框架搭建工程2021-11-07 13:58:51

    一、 为什么选择用Gin框架 最初是在Gin框架和Beego框架这两个框架上做个选择,两者的社区用户量都很大,都很活跃。Beego大而全,几乎所有的模块都模块化,封装好,开箱即用,而Gin的有点就是简单,轻量级,性能好,灵活性高,想用什么就在添加什么。有个比较好的对比图我放个链接可以去看一下, Go

  • OpenAPITools 实践2021-11-05 23:00:52

    OpenAPITools 可以依据 REST API 描述文件,自动生成服务端桩(Stub)代码、客户端 SDK 代码,及文档等。其是社区版的 Swagger ,差异可见:OpenAPI Generator vs Swagger Codegen。 本文将从零开始设计和编写 API 文件,并生成 Go Gin 服务端代码,与 Python SDK 代码。更多语言或框架,也是一样操

  • Gin处理跨域问题2021-11-01 23:32:50

    Gin处理跨域问题 使用gin中间件,解决跨域问题 创建一个中间件 /middleware/CORESMiddleware.go package middleware import ( "net/http" "github.com/gin-gonic/gin" ) func CORSMiddleware() gin.HandlerFunc { return func(ctx *gin.Context) { ctx.Writer.Header().

  • swag的在Mac下的使用,在工程中的使用2021-10-30 17:36:04

    swag在Mac下的安装,请参考如下地址 https://blog.csdn.net/weixin_43262264/article/details/107339026 具体的使用, 在 router中 func NewRouter() *gin.Engine { r := gin.Default() r.Use(middleware.Cors()) r.GET("/v1/swagger/*any", ginSwagger.WrapHandler(swagge

  • docker 部署gin項目2021-10-29 15:35:28

    1.centos上安装docker,安装git,安装go 2.将项目加入 Dockerfile : FROM scratchWORKDIR $GOPATH/src/github.com/EDDYCJY/go-gin-exampleCOPY . $GOPATH/src/github.com/EDDYCJY/go-gin-exampleEXPOSE 8000CMD ["./go-gin-example"]3。编译gin项目生成可执行文件:CGO_ENABLED=0 GOO

  • Gin 中使用 base64Captcha 生成图形验证 码以及分布式架构中配置 Captcha2021-10-29 13:33:49

    Gin 中使用 base64Captcha 生成图形验证 码以及分布式架构中配置 Captcha https://github.com/mojocn/base64Captcha captcha.mojotv.cn package models import ( "github.com/mojocn/base64Captcha" "image/color" ) // 设置自带的 store(可以配置成redis) var store = base64

  • Gin 大型企业级 MVC 架构详解2021-10-29 09:34:18

    Gin 大型企业级 MVC 架构详解 Gin 不是一个 MVC 的框架,所有的代码都可以写在 main.go 中。当我们的项目比较大的时候, 所有代码写在一个文件里面会带来很大问题,比如:没法实现多人协作开发,没法实现模块 化,没法实现代码共用等。为了使我们的项目更易于开发、维护、管理、升级,这个时候

  • gin中的路由参数2021-10-28 16:02:21

    package main import ( "fmt" "github.com/gin-gonic/gin" ) func main() { router := gin.Default() // 路由参数1,将匹配/user/mayanan和/user/,但是不会匹配/user //router.GET("/user/:name", func(context *gin.Context) { // name := context.

  • gin中设置和获取cookie2021-10-28 15:03:03

    package main import ( "fmt" "github.com/gin-gonic/gin" ) func main() { router := gin.Default() router.GET("/cookie", func(context *gin.Context) { // 获取cookie cookie, err := context.Cookie("gin_cookie")

  • gin中如何自定义验证器2021-10-28 14:34:12

    package main import ( "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/binding" "github.com/go-playground/validator/v10" "net/http" "time" ) type Booking struct { // 包含绑定和验证的数据,bookabledate就是自定

  • gin中自定义http的配置2021-10-28 10:00:27

    package main import ( "github.com/gin-gonic/gin" "net/http" "time" ) func main() { // 自定义http配置1 //router := gin.Default() //router.GET("/", func(context *gin.Context) { // context.String(200, "OK"

  • gin中绑定表单数据至自定义结构体2021-10-27 18:34:56

    package main import "github.com/gin-gonic/gin" type StructA struct { FieldA string `form:"field_a"` } type StructB struct { // 嵌套结构体 NestedStruct StructA FieldB string `form:"field_b"` } type StructC struct { // 嵌套结构体指

  • gin中绑定查询字符串或表单数据2021-10-27 17:00:26

    package main import ( "github.com/gin-gonic/gin" "log" "time" ) type Person struct { Name string `form:"name"` Address string `form:"address"` Birthday time.Time `form:"birthday" time_for

  • gin中获取查询字符串参数2021-10-27 15:00:42

    package main import ( "github.com/gin-gonic/gin" "net/http" ) func main() { r := gin.Default() r.GET("/", func(context *gin.Context) { id := context.Query("id") // context.Request.URL.Query().Get("id&q

  • gin中间request body绑定到不同的结构体中2021-10-27 14:01:23

    1. 一般通过调用 c.Request.Body 方法绑定数据,但不能多次调用这个方法。 package main import ( "fmt" "github.com/gin-gonic/gin" ) type FormA struct { Foo string `form:"foo" json:"foo" binding:"required"` } type FormB struct {

  • gin中自定义路由日志的格式2021-10-27 11:03:53

    package main import ( "fmt" "github.com/gin-gonic/gin" "net/http" "time" ) func main() { router := gin.New() // LoggerWithFormatter middleware will write the logs to gin.DefaultWriter // By default gin.Defa

  • 基于 Redis 存储 Session2021-10-27 10:02:38

    基于 Redis 存储 Session 如果我们想将 session 数据保存到 redis 中,只要将 session 的存储引擎改成 redis 即可。 使用 redis 作为存储引擎的例子: 首先安装 redis 存储引擎的包 go get github.com/gin-contrib/sessions/redis // 初始化基于 redis 的存储引擎 // 参数说明: //

  • gin中如何记录日志和错误日志2021-10-26 18:03:47

    package main import ( "github.com/gin-gonic/gin" "io" "os" ) func main() { // 禁用控制台颜色,将日志写入文件时不需要控制台颜色 gin.DisableConsoleColor() // 记录日志到文件 f, _ := os.Create("gin.log") gin.DefaultWriter = io.MultiWriter(

  • 基于 Redis 存储 Session2021-10-25 22:31:23

    基于 Redis 存储 Session 如果我们想将 session 数据保存到 redis 中,只要将 session 的存储引擎改成 redis 即可。 使用 redis 作为存储引擎的例子: 首先安装 redis 存储引擎的包 go get github.com/gin-contrib/sessions/redis // 初始化基于 redis 的存储引擎 // 参数说明: //

  • 如何用最快的时间学会 Go 语言?2021-10-25 17:32:49

    如果我告诉你只需要学习半天 Golang 就能开发应用程序你信不信? 我一直认为学习一门新的编程语言难点不在语法(除个别语言,绝大多数语言都是 “C-like”),难点是如何有效快速的应用到实际开发和工程管理中,并且能极大发挥出这门语言最大的优势特性。 首先,先去官网下载 Golang 编译

  • Envoy:离群点检测 outlier detection2021-10-24 21:04:31

    outlier detection 在异常检测领域中,常常需要决定新观察的点是否属于与现有观察点相同的分布(则它称为inlier),或者被认为是不同的(称为outlier)。离群是异常的数据,但是不一定是错误的数据点。 在Envoy中,离群点检测是动态确定上游集群中是否有某些主机表现不正常,然后将它们从正常

  • gin中如何自定义中间件2021-10-22 15:33:17

    package main import ( "fmt" "github.com/gin-gonic/gin" ) func main() { // 新建一个没有任何默认中间件的路由 router := gin.New() // Logger 中间件将日志写入 gin.DefaultWriter,即使你讲GIN.MODE设置为release // gin.DefaultWriter io.Writer = os.Stdout rout

  • Gin 单文件、多文件(同名、不同吗)上传2021-10-21 17:01:35

    定义模板 需要在上传文件的 form 表单上面需要加入 enctype="multipart/form-data" 单文件上传 r.POST("/admin/user/doUpload", func(c *gin.Context) { username := c.PostForm("username") file, err := c.FormFile("face") dst := path.Join(&quo

  • gin中从reader读取数据数据2021-10-21 16:00:08

    package main import ( "fmt" "github.com/gin-gonic/gin" "net/http" "reflect" ) func main() { // 从 reader 读取数据 router := gin.Default() router.GET("/someDateFromReader", func(context *gin.Context) {

  • 记录一次优化大数据量http传输慢的问题2021-10-21 10:58:55

         场景是标记百度地图的坐标点,数据库返回的坐标点有26万数据,传输速度在11秒左右。      解决方式:http用gzip压缩后返回,最后返回给前端的数据还是原数据,无需前端再处理      编程语言:go,使用的是gin框架 import "github.com/gin-contrib/gzip" func main() { r := g

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有