gin

Gin框架请求数据绑定与多数据格式处理

浪尽此生 提交于 2020-08-10 16:20:28
1.ShouldBindQuery.go package main import ( "fmt" "github.com/gin-gonic/gin" "log" ) func main ( ) { engine := gin . Default ( ) //GET请求 //http://localhost:8080/hello?name=davie&classes=软件工程 engine . GET ( "/hello" , func ( context * gin . Context ) { fmt . Println ( context . FullPath ( ) ) //数据与表单实体来进行绑定的一个操作 var student Student err := context . ShouldBindQuery ( & student ) if err != nil { log . Fatal ( err . Error ( ) ) } fmt . Println ( student . Name ) fmt . Println ( student . Classes ) context . Writer . Write ( [ ] byte ( "hello," + student . Name ) ) } ) engine . Run ( ) } type

Arctic Code Vault Contributor 上榜了 go-admin v1.1 beta 版本发布

帅比萌擦擦* 提交于 2020-08-10 06:19:37
Arctic Code Vault Contributor 上榜了,内心比较喜悦,谢谢开源社区的支持,也谢谢广大 coder 的支持; go-admin 是一个基于 Gin + Vue + Element UI 的前后端分离权限管理系统脚手架(包含了:基础用户管理功能,jwt 鉴权,代码生成器,RBAC 资源控制,表单构建等) 演示地址: http://www.zhangwj.com 在线文档 https://wenjianzhang.github.io/go-admin-site 国际仓库 https://github.com/wenjianzhang/go-admin 国内仓库 https://gitee.com/mydearzwj/go-admin 视频教程 https://space.bilibili.com/565616721/channel/detail?cid=125737 新增功能: 新增了开发模式单独控制部分属性: 开发模式中 token 过期时长; login 接口开发模式中不需填写验证码; 菜单一键生成到数据库; api 接口配置一键生成到数据库; 表单构建工具升级: 添加富文本等组件; 修复已知 bug ; 数据库类型增加 sqlite3,postgres 的支持; 更新文档说明; 不断更新的教程 轻松实现 go-admin 写出第一个应用 - 文档教程

PostgreSQL 12.2 公开课及视频及PGCE认证(第11期)(CUUG)(2020年)

孤者浪人 提交于 2020-08-09 18:08:40
十一、PostgreSQL 12.2 9种索引的原理和应用场景及维护 1、PG数据库众多开放特性概述 2、btree、hash、gin、gist、sp-gist、brin、bloom、rum、zombodb各种索引原理和应用场景 3、各种索引维护时有用的查询集锦 4、索引调优案例 本次线上技术沙龙介绍PG数据库各种索引类型与应用,涵盖最常用的9种索引类型,从知识普及到深入了解再到调优应用,为大家献上一场简约而不失内涵的盛宴。 手把青苗插满田,低头便见水中天,六根清净方为道,退步原来是向前。 时间:2020-05-23 20:00-21:00 地址: 视频: 注:PostgresSQL 12.2 企业级课程系列公开课,是由北京CUUG的陈老师制作讲解,内容涉及到企业中常用到的一些技术,比如备份恢复、PITR、流复制、双机热备、单表查询成本估算、可见性验证、Autovacuum调优、事务隔离级别、并行查询调优、等一系列内容,免费公开课,欢迎大家参与学习。 关于PGCA和PGCE认证,这是PostgreSQL数据库的初级和中级认证,CUUG是指定的培训及考试中心,如想考PG认证,可以联系CUUG咨询老师。 来源: oschina 链接: https://my.oschina.net/u/3902946/blog/4287094

如何使用 Gin 和 Gorm 搭建一个简单的 API 服务 (二)

早过忘川 提交于 2020-08-09 14:40:01
创建 API   我们之前已经跑过 Gin 框架的代码,现在是时候加些功能进去了。 读取全部信息   我们先从"增删改查"中的"查"入手,查询我们之前添加的信息。我接下来要删除几行代码,并把 Gin 的框架代码加回来。 package main import ( "fmt" "github.com/gin-gonic/gin" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/sqlite" ) var db *gorm .DB var err error type Person struct { ID uint `json:"id”` FirstName string `json:"firstname”` LastName string `json:"lastname”` } func main ( ) { // NOTE: See we’re using = to assign the global var // instead of := which would assign it only in this function db , err = gorm . Open ( "sqlite3" , "./gorm.db" ) if err != nil { fmt . Println (err ) }

如何使用 Gin 和 Gorm 搭建一个简单的 API 服务 (三)

有些话、适合烂在心里 提交于 2020-08-09 11:14:47
修改数据结构   基本的 API 已经定义好了,现在是个修改 Person 对象结构的好时机。只要修改 Person 结构体,数据库和 API 都会自动做出相应的修改。   我要做的是在 Person 结构体中添加 city 字段,就这一行,没有其他改动。 type Person struct { ID uint `json:"id"` FirstName string `json:"firstname"` LastName string `json:"lastname"` City string `json:"city"` }   刷新浏览器,你就会看到 city 字段已经添加进去了。 [ { "id" : 2 , "firstname" : "Elvis" , "lastname" : "Presley" , "city" : "" } , { "id" : 3 , "firstname" : "Tom" , "lastname" : "Sawyer" , "city" : "" } ]   Gin 可以创建和修改字段,而不需要做其他任何改动。 $ curl -i -X PUT http : / /localhost : 8080 /people / 2 -d '{ "city": "Memphis" }' HTTP / 1.1 200 OK Content -Type :

zap日志库

萝らか妹 提交于 2020-08-09 06:00:45
在Go语言项目中使用Zap日志库 https://www.liwenzhou.com/posts/Go/zap/ 使用zap接收gin框架默认的日志并配置日志归档 https://www.liwenzhou.com/posts/Go/use_zap_in_gin/ 来源: oschina 链接: https://my.oschina.net/u/3847203/blog/4316721

Gin框架学习

夙愿已清 提交于 2020-08-08 19:27:02
https://www.qfgolang.com/?special=ginkuangjia Gin官网 https://gin-gonic.com/zh-cn/docs/ 来源: oschina 链接: https://my.oschina.net/u/3847203/blog/4315998

gin form validator

坚强是说给别人听的谎言 提交于 2020-08-07 06:17:18
validator.go 封装一个统一处理验证消息的文件 package goo import ( "fmt" "github.com/go-playground/validator" "strings" ) func ValidationMessage(err error, msgs map[string]string) string { for _, i := range err.(validator.ValidationErrors) { key := fmt.Sprintf("%s_%s", strings.ToLower(i.Field()), strings.ToLower(i.Tag())) if msg, ok := msgs[key]; ok { return msg } msg := fmt.Sprintf("%s %s", i.Field(), i.Tag()) return msg } return err.Error() } address.go 这是一个使用demo type AddressDelete struct { Id int64 `json:"id" binding:"required"` } func (this AddressDelete) DoHandle(c *gin.Context) { if err := c.ShouldBind(

JetBrains 发布 2020 年 Go 语言调查报告

给你一囗甜甜゛ 提交于 2020-07-29 05:04:06
有63%的人Go主要用于工作,28%的人用于个人项目 大多数人同时使用多个版本的Go,我估计是要维护不同版本下的项目,下面这个数据印证了这个猜测。 71%的Go开发者主要用来做微服务,排在Scala之后。 GOPATH影响深远啊,74%的人还是只使用一个全局GOPATH,其实最佳实践是分两个,一个用来下载第三方库,另一个用来做项目,但是目前引入新的module之后基本上不用GOPATH了。 版本管理基本上都已经切换到modules,dep和godep紧跟其后,我估计后面这些都是老版本维护工具了 大多数人还是使用Gin为主,echo和beego紧跟其后,44%的人不使用框架。 很多人使用gorilla/mux做路由,但是不可思议的居然有30%的人使用原生的。 大多数人使用内置的testing框架做测试,testify和gomock使用的人也很多,但是还是有20%左右的人不写test,还得继续努力啊 大多数项目看上去都不大,50%左右codebase的文件在100以内。 自从有了modules之后基本上可以脱离GOPATH,而且从数据也可以说明大多数人也是在GOPATH之外新建项目 modules虽好,但是也是存在很多bug或者问题,一半一半的人,一些人愿意,一半人不愿意。 从这个图可以看出来大多数人还是在网站开发,和我们之前调研的结果一样,国内外开发者还是主要在这一块。 来源:

在ef core中使用postgres数据库的全文检索功能实战

元气小坏坏 提交于 2020-07-28 20:12:36
起源 之前做的很多项目都使用solr/elasticsearch作为全文检索引擎,它们功能全面而强大,但是对于较小的项目而言,构建和维护成本显然过高,尤其是从关系数据库/文档数据库到全文检索引擎的数据同步工作非常繁琐,且容易出错。 记得很久以前就知道postgresql数据库内置全文检索,最近发现这个数据库越来越火,于是就又研究了一番,欣喜的发现居然支持ef core,于是对其进行了一些研究,并整理心得如下。 前提 本文假设读者熟悉entity framework core的基本概念和基本使用。 目的 建立dotnet core项目,使用postgres数据库和ef core,实现常见的全文检索功能,包括 建立索引字段 基本查询 查询结果排名 查询结果高亮显示 步骤1 - 新建项目并引入packages < Project Sdk ="Microsoft.NET.Sdk" > < PropertyGroup > < OutputType > Exe </ OutputType > < TargetFramework > netcoreapp3.1 </ TargetFramework > </ PropertyGroup > < ItemGroup > < PackageReference Include ="EFCore.NamingConventions" Version =