Go struct 中 json 标记解释

1
Field int `json:"myName"`
  • 解析(encode/decode) 的时候,使用 “myName”,而不是 “Field”
1
Field int `json:"myName,omitempty"`
  • 解析(encode/decode) 的时候,使用 “myName”,而不是 “Field”
  • 并且如果字段值是空的话则忽略
1
Field int `json:",omitempty"`
  • 解析(encode/decode) 的时候,使用 “Field”
  • 但是字段值是空的话则忽略
  • 注意逗号.
1
Field int `json:"-"`
  • 忽略字段
1
Field int `json:"-,"`
  • 解析(encode/decode) 的时候,使用 “-“,而不是 “Field”
1
Int64String int64 `json:",string"`
  • json中是string类型,struct中是int类型

Go 生成UUID

使用第三方包:

1
github.com/satori/go.uuid

使用很简单:

1
2
newUUID, _ := uuid.NewV4()
newUUIDString := newUUID.String()

Go gin使用swagger生成API文档

本文代码github: https://github.com/zboyco/go-test/blob/master/gin-swagger/main.go


1. 前言

swagger 用于生成、描述、调用和可视化 RESTful 风格的API文档,这里记录下在go中使用swagger生成api文档的方法.

2. 库

1
2
github.com/swaggo/gin-swagger
github.com/swaggo/gin-swagger/swaggerFiles

以上两个库都需要使用,另外还需要一个swag工具用来生成docs文件.

1
github.com/swaggo/swag

验证swag是否安装成功

1
swag -v

3. 注释

swaggo通过注释来生成swagger需要的信息,详细的注释格式可以参考https://swaggo.github.io/swaggo.io ,这里只记录下简单的用法.

Kafka 简单操作

记一下常用的操作

  1. 创建topic

    1
    bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic test

    创建一个名为test的topic,有3个分区,每个分区需分配3个副本

  2. 查看所有topic列表

    1
    bin/kafka-topics.sh --zookeeper localhost:2181 --list
  3. 查看指定topic信息

    1
    bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic test
  4. 增加分区

    1
    bin/kafka-topics.sh --zookeeper localhost:2181  --alter --topic test --partitions 10