gin框架简单注册接口开发

1、初始化DB

 2、命名接口

3、获取参数(姓名,密码,手机号为例)

 4、参数进行简单的验证(手机号11位+密码大于六位)

 5、判断手机号是否存在

 

6、 用户注册结构体(需要用到的数据)

 7、连接数据库

 

8、数据验证都通过后,在数据添加数据,进行注册操作

 9、状态码返回(200)

 

 10、测试是否注册成功

 

 11、注册成功数据库中数据

 12、总体代码

//用户注册结构体
type User struct {
   gorm.Model
   Name      string `gorm:"type:varchar(20);not null"`
   Password  string `gorm:"varchar(110;not null);unique"`
   Telephone string `gorm:"size:255;not null"`
}

func main() {
   //获取初始化db
   db := InitDB()
   //延时关闭它
   defer db.Close()
   r := gin.Default()
   r.POST("/api/auth/register", func(c *gin.Context) {
      //fmt.Printf(c.PostForm("name"))
      //获取参数
      name := c.PostForm("name")
      telephone := c.PostForm("telephone")
      password := c.PostForm("password")
      //数据验证
      fmt.Printf(name, telephone, password)
      if len(telephone) != 11 {
         c.JSON(http.StatusUnprocessableEntity, gin.H{"code": 422, "msg": "手机号必须是11位"})
         return
      }
      if len(password) < 6 {
         c.JSON(http.StatusUnprocessableEntity, gin.H{"code": 422, "msg": "密码不能少于6位"})
         return
      }
      //判断手机号是否存在
      if isTelephoneExist(db, telephone) {
         c.JSON(http.StatusUnprocessableEntity, gin.H{"code": 422, "msg": "手机号已存在"})
         return
      }
      //数据库操作(创建用户)
      newUser := User{
         Name:      name,
         Telephone: telephone,
         Password:  password,
      }
      db.Create(&newUser)
      c.JSON(200, gin.H{
         "msg": "注册成功",
      })
   })
   panic(r.Run())

}

func isTelephoneExist(db *gorm.DB, telephone string) bool {
   var user User
   db.Where("telephone=?", telephone).First(&user)
   if user.ID != 0 {
      return true
   }
   return false
}

//连接数据库
func InitDB() *gorm.DB {
   driverName := "mysql"
   host := "localhost"
   port := "3306"
   database := "firstgo"
   username := "root"
   password := "001212"
   charset := "utf8"
   args := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=%s&parseTime=true",
      username,
      password,
      host,
      port,
      database,
      charset,
   )
   db, err := gorm.Open(driverName, args)
   if err != nil {
      panic("filed to connect database,err" + err.Error())
   }
   //自动创建数据表
   db.AutoMigrate(&User{})
   return db
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值