在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:lessgo开源软件地址:https://gitee.com/henrylee2cn/lessgo开源软件介绍:Lessgo Web Framework概述Lessgo是一款Go语言开发的简单、稳定、高效、灵活的 web开发框架。它的项目组织形式经过精心设计,实现前后端分离、系统与业务分离,完美兼容MVC与MVVC等多种开发模式,非常利于企业级应用与API接口的开发。当然,最值得关注的是它突破性支持运行时路由重建,开发者可在Admin后台轻松配置路由,并实现启用/禁用模块或操作、添加/移除中间件等!同时,它以ApiHandler与ApiMiddleware为项目基本组成单元,可实现编译期或运行时的自由搭配组合,也令开发变得更加灵活富有趣味性。 适用场景
当前版本
最新功能特性
框架下载go get -u github.com/henrylee2cn/lessgogo get -u github.com/henrylee2cn/lessgo get -u github.com/henrylee2cn/lessgoext/... 框架构成代码示例
import ( "github.com/henrylee2cn/lessgo" "github.com/henrylee2cn/lessgoext/swagger" _ "github.com/henrylee2cn/lessgoext/dbservice/xorm" // _ "github.com/henrylee2cn/lessgoext/dbservice/gorm" _ "github.com/henrylee2cn/lessgo_demo/middleware" _ "github.com/henrylee2cn/lessgo_demo/router")func main() { // 开启自动api文档,通过config/apidoc_allow.myconfig进行配置 swagger.Reg() // 指定根目录URL lessgo.SetHome("/home") // 开启网络服务 lessgo.Run()}
import ( . "github.com/henrylee2cn/lessgo" "github.com/henrylee2cn/lessgo_demo/sysmodel/admin")var Index = ApiHandler{ Desc: "后台管理登录操作", Method: "POST|PUT", Params: []Param{ {"user", "formData", true, "henry11111", "用户名"}, {"user", "query", true, "henry22222", "用户名"}, {"user", "path", true, "henry33333", "用户名"}, {"password", "formData", true, "1111111111", "密码"}, {"password", "query", true, "2222222222", "密码"}, {"password", "path", true, "3333333333", "密码"}, }, Handler: func(c *Context) error { // 测试读取cookie id := c.CookieParam(Config.Session.SessionName) c.Log().Info("cookie中的%v: %#v", Config.Session.SessionName, id) // 测试session c.Log().Info("从session读取上次请求的输入: %#v", c.GetSession("info")) c.SetSession("info", map[string]interface{}{ "user": c.FormParam("user"), "password": c.FormParam("password"), }) c.Log().Info("path用户名: %#v", c.PathParam("user")) c.Log().Info("query用户名: %#v", c.QueryParam("user")) c.Log().Info("formData用户名: %#v", c.FormParam("user")) c.Log().Info("path密码: %#v", c.PathParam("password")) c.Log().Info("query密码: %#v", c.QueryParam("password")) c.Log().Info("formData密码: %#v", c.FormParam("password")) return c.Render(200, "sysview/admin/login/index.tpl", map[string]interface{}{ "name": c.FormParam("user"), "password": c.FormParam("password"), "repeatfunc": admin.Login.Repeatfunc, }, ) },}.Reg()
import ( "strings")type login struct{}var Login = login{}func (_ login) Repeatfunc(s string, count int) string { return strings.Repeat(s, count)}
var ShowHeader = lessgo.ApiMiddleware{ Name: "显示Header", Desc: "显示Header测试", Config: nil, Middleware: func(c *lessgo.Context) error { c.Log().Info("测试中间件-显示Header:%v", c.Request().Header) return nil },}.Reg()
package routerimport ( "github.com/henrylee2cn/lessgo" "github.com/henrylee2cn/lessgo_demo/bizhandler/home" "github.com/henrylee2cn/lessgo_demo/middleware")func init() { lessgo.Root( lessgo.Leaf("/websocket", home.WebSocket, middleware.ShowHeader), lessgo.Branch("/home", "前台", lessgo.Leaf("/index", home.Index, middleware.ShowHeader), ).Use(middleware.Print), )} 系统文档项目架构项目目录结构─Project 项目开发目录├─config 配置文件目录│ ├─app.config 系统应用配置文件│ └─db.config 数据库配置文件├─common 后端公共目录│ └─... 如utils等其他├─middleware 后端公共中间件目录├─static 前端公共目录 (url: /static)│ ├─tpl 公共tpl模板目录│ ├─js 公共js目录 (url: /static/js)│ ├─css 公共css目录 (url: /static/css)│ ├─img 公共img目录 (url: /static/img)│ └─plugin 公共js插件 (url: /static/plugin)├─uploads 默认上传下载目录├─router 源码路由配置│ ├─sys_router.go 系统模块路由文件│ ├─biz_router.go 业务模块路由文件├─sys_handler 系统模块后端目录│ ├─xxx 子模块目录│ │ ├─example.go example操作│ │ └─... xxx的子模块目录│ └─... 其他子模块目录├─sys_model 系统模块数据模型目录├─sys_view 系统模块前端目录 (url: /sys)│ ├─xxx 与sys_handler对应的子模块目录 (url: /sys/xxx)│ │ ├─example.tpl 相应操作的模板文件│ │ ├─example2.html 无需绑定操作的静态html文件│ │ ├─xxx.css css文件(可有多个)│ │ ├─xxx.js js文件(可有多个)│ │ └─... xxx的子模块目录├─biz_handler 业务模块后端目录│ ├─xxx 子模块目录│ │ ├─example.go example操作│ │ └─... xxx的子模块目录│ └─... 其他子模块目录├─biz_model 业务模块数据模型目录├─biz_view 业务模块前端目录 (url: /biz)│ ├─xxx 与biz_handler对应的子模块目录 (url: /biz/xxx)│ │ ├─example.tpl 相应操作的模板文件│ │ ├─example2.html 无需绑定操作的静态html文件│ │ ├─xxx.css css文件(可有多个)│ │ ├─xxx.js js文件(可有多个)│ │ └─... xxx的子模块目录├─database 默认数据库文件存储目录├─logger 运行日志输出目录└─main.go 应用入口文件 贡献者名单
开源协议Lessgo 项目采用商业应用友好的 MIT 协议发布。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论