内容简介:框架一直是敏捷开发中的利器,能让开发者很快的上手并做出应用,甚至有的时候,脱离了框架,一些开发者都不会写程序了。Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,已经发布了2.0版本。具有快速灵活,容错方便等特点。框架更像是一些常用函数或者工具的集合。借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范。main.go:data.go:
一、Gin框架介绍
框架一直是敏捷开发中的利器,能让开发者很快的上手并做出应用,甚至有的时候,脱离了框架,一些开发者都不会写程序了。Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,已经发布了2.0版本。具有快速灵活,容错方便等特点。框架更像是一些常用函数或者 工具 的集合。借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范。
二、gin安装
首先需要安装,安装比较简单,使用go get即可
go get github.com/gin-gonic/gin
如果安装失败,直接去Github clone下来,放置到对应的目录即可。
三、简单介绍构建过程
1、文件夹结构
https ————main.go ————data ——————————data.go ————gin_router ——————————router.go ————gin_api ——————————func.go ————func_judge ——————————isExist.go
2、相关文件代码
main.go:
package main
import (
Main "https/gin_router"
)
func main() {
Main.InitRouter()
}
data.go:
package data
//用于存储用户信息的结构体,Id,Name,Passwd
type User struct {
Id int
Name string
Passwd string
}
//用于存储用户的切片
var Slice []User
//用于临时存储用户登录信息的Map
var State = make(map[string]interface{})
route.go
package gin_router
import (
api "https/gin_api"
"github.com/gin-gonic/gin"
)
func InitRouter() {
gin.SetMode(gin.ReleaseMode)
//使用gin的Default方法创建一个路由handler
router := gin.Default()
//设置默认路由当访问一个错误网站时返回
router.NoRoute(api.NotFound)
//使用以下gin提供的Group函数为不同的API进行分组
v1 := router.Group("admin")
{
v1.GET("/register", api.Register)
v1.GET("/login", api.Login)
}
//监听服务器端口
router.Run(":8080")
}
func.go:
package gin_regAndlog
import (
. "https/data"
Func "https/func_judge"
"net/http"
"github.com/gin-gonic/gin"
)
//注册
func Register(c *gin.Context) {
//获取用户名、密码
name := c.Request.FormValue("Name")
passwd := c.Request.FormValue("Passwd")
//判断用户是否存在
//存在输出状态1
//不存在创建用户,保存密码与用户名
Bool := Func.IsExist(name)
if Bool {
//注册状态
State["state"] = 1
State["text"] = "此用户已存在!"
} else {
//用户不存在即添加用户
AddStruct(name, passwd)
State["state"] = 1
State["text"] = "注册成功!"
}
//把状态码和注册状态返回给客户端
c.String(http.StatusOK, "%v", State)
}
//登录
func Login(c *gin.Context) {
name := c.Request.FormValue("Name")
passwd := c.Request.FormValue("Passwd")
//先判断用户是否存在,存在再判断密码是否正确
Bool := Func.IsExist(name)
if Bool {
Bool_Pwd := Func.IsRight(name, passwd)
if Bool_Pwd {
State["state"] = 1
State["text"] = "登录成功!"
} else {
State["state"] = 0
State["text"] = "密码错误!"
}
} else {
State["state"] = 2
State["text"] = "登录失败!此用户尚未注册!"
}
c.String(http.StatusOK, "%v", State)
}
//设置默认路由当访问一个错误网站时返回
func NotFound(c *gin.Context) {
c.JSON(http.StatusNotFound, gin.H{
"status": 404,
"error": "404 ,page not exists!",
})
}
//添加用户
func AddStruct(name string, passwd string) {
var user User
user.Name = name
user.Passwd = passwd
user.Id = len(Slice) + 1
Slice = append(Slice, user)
}
isExist.go:
package func_judge
import (
. "https/data"
)
//判断是否存在用户
func IsExist(user string) bool {
//如果长度为0说明尚未有用户注册
if len(Slice) == 0 {
return false
} else {
//遍历切片
for _, v := range Slice {
// return v.Name == user //此时只能和第一个比较,所以第一个之后全为false
if v.Name == user {
return true
}
}
}
return false
}
//判断密码是否正确
func IsRight(user string, passwd string) bool {
for _, v := range Slice {
if v.Name == user {
//先确认姓名一致,密码相同返回true
return v.Passwd == passwd
}
}
return false
}
四、RESTClient测试
注册:
注册
客户端反馈结果
注册失败
登录:
登录
登录成功
以上所述就是小编给大家介绍的《使用Gin框架构建一个简单的注册登录后台(Go语言)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- React后台框架搭建
- 推荐一个React的管理后台框架
- Tplay — 基于 ThinkPHP 的后台管理框架
- Erupt Framework 正式开源,后台管理框架
- JPower:一个可以快速进入业务开发的后台框架
- erupt 1.6.16 已经发布,通用后台管理框架
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
企业应用架构模式
Martin Fowler、王怀民、周斌 / 王怀民、周斌 / 机械工业出版社 / 2004-7 / 49.00元
本书作者是当今面向对象软件开发的权威,他在一组专家级合作者的帮助下,将40多种经常出现的解决方案转化成模式,最终写成这本能够应用于任何一种企业应用平台的、关于解决方案的、不可或缺的手册。本书获得了2003年度美国软件开发杂志图书类的生产效率奖和读者选择奖。本书分为两大部分。第一部分是关于如何开发企业应用的简单介绍。第二部分是本书的主体,是关于模式的详细参考手册,每个模式都给出使用方法和实现信息,并一起来看看 《企业应用架构模式》 这本书的介绍吧!