GoFrame安装 文档地址:https://goframe.org/ 讲的还挺详细的,基本上都能看懂,有语言基础的话基本上就能直接上手了 下载CLI地址:https://github.com/gogf /gf-cli 工具可以帮助我们快速的新建一个GoFrame的项目 GoFrame使用 初始化项目 gf init 项目名 这里有个小问题,默认是不会新建项目名称的文件夹,直接下载依赖代码 项目中的.gitkeep r.Response.Write("post") }) s.SetPort(8199) s.Run() } 这样看来,分组路由觉得是首选,简单易用(主要是可以偷懒) 操作ORM GoFrame model生成实体之后,下面我们结合上面的路由来看下如何操作数据库 main.go package router import ( "github.com/gogf/gf/frame/g" "goframe student.go package student import ( "github.com/gogf/gf/frame/g" "github.com/gogf/gf/net/ghttp" "goframe
比如,我们可以通过如下文件,在一个进程中同时启动 gRPC, Gin, Echo, GoFrame 框架。统一团队内部的微服务布局。 8081/rk/v1/healthy {"healthy":true} # Echo $ curl localhost:8082/rk/v1/healthy {"healthy":true} # GoFrame /rookie-ninja/rk-boot/grpc rk-grpc Echo Stable go get github.com/rookie-ninja/rk-boot/echo rk-echo GoFrame 验证中间件 RateLimit RPC 限速中间件 Timeout RPC 超时中间件 CORS CORS 中间件 JWT JWT 验证 Secure 服务端安全中间件 CSRF CSRF 中间件 GoFrame
[up-1b8cc43bd72d206943de78dde8981bbc1d0.png] 介绍 本文将介绍如何在 GoFrame 框架之上提供 Swagger UI。 请访问如下地址获取完整 GoFrame 教程: https://rkdocs.netlify.app/cn 先决条件 GoFrame 没有自带生成 Swagger UI 配置文件的功能。 安装选项 2:通过 swag 官网 $ go get -u github.com/swaggo/swag/cmd/swag 安装 rk-boot 我们介绍 rk-boot 库,用户可以快速搭建基于 GoFrame rookie-ninja/rk-boot go get github.com/rookie-ninja/rk-gf 快速开始 1.创建 boot.yaml boot.yaml 文件会告诉 rk-boot 如何启动 GoFrame rookie-ninja/rk-boot" "github.com/rookie-ninja/rk-gf/boot" "net/http" ) // @title RK Swagger for GoFrame
欢迎来到我的GoFrame框架的系列学习之旅。GoFrame(简称gf)是一个由Go语言编写的模块化、高性能、企业级的开发框架,它旨在简化Go语言应用的开发过程,提升开发效率。 今天,我将从搭建GoFrame的开发环境开始,为接下来的学习之旅做好准备。环境搭建安装Go环境:确保你的电脑上已经安装了Go语言环境。访问Go官网下载并安装最新版本的Go。 安装GoFrame:GoFrame框架可以通过go get命令直接安装。 验证安装:安装完成后,你可以通过编写一个简单的Go程序来验证GoFrame是否安装成功。 如何在项目中有效地管理GoFrame的依赖?结语今天,完成了GoFrame框架的学习之旅的第一步——搭建开发环境。明天,分享第二篇深入学习GoFrame的基础组件,敬请期待!
[up-89b0ffb98c2d0ebab60041c6743b76085fd.png] 介绍 通过一个完整例子,在基于 GoFrame 框架的微服务中添加 Prometheus 监控。 GoFrame 框架监控中间件,会在后续的文章中介绍。 我们将会使用 rk-boot 来启动 GoFrame 微服务。 github.com/rookie-ninja/rk-boot go get github.com/rookie-ninja/rk-gf 快速开始 1.创建 boot.yaml boot.yaml 文件描述了 GoFrame 框架启动参数,rk-boot 通过读取 boot.yaml 来启动 GoFrame。
GoFrame框架针对业务项目的目录设计,主体的思想来源于三层架构,但在具体实现中,对其进行了一定的改进和细化使其更符合工程实践和时代进步。 # 一.工程目录结构GoFrame业务项目基本目录结构如下:# 二.目录结构解释**对外接口**对外接口包含两部分:接口定义(api)+接口实现(controller)。
上面的例子中,我们配置了 zap 日志,这回我们修改一下 EventLogger。
第一次基于GoFrame框架开发项目,这是一个灵感来自PHP Laravel的Golang开发框架,使用之后其实自己并不是很喜欢,把一个开发语言的习惯直接迁移到另一个开发语言上,个人觉得并不是一个好主意 同事之前的实践 异常处理是每个框架都需要考虑的问题,GoFrame也有自己的设计,可以看他们的官方文档。
[up-d889870e7e8090024478121cdb19884fb81.png] 介绍 通过一个完整例子,在基于 GoFrame 框架的微服务中添加 Prometheus 监控中间件。 我们将会使用 rk-boot 来启动 GoFrame 框架的微服务。 1.创建 boot.yaml boot.yaml 文件描述了 Gin 框架启动的原信息,rk-boot 通过读取 boot.yaml 来启动 GoFrame。
通过一个完整例子,在 gogf/gf 框架中开启 TLS/SSL,我就是我们常说的 https。
[up-4d0fb8739b7b1239d0f1aa2aea7e575d1af.png] 介绍 本文通过一个完整的例子,介绍如何在 GoFrame 框架下设计合理的 API 错误码。 我们将会使用 rk-boot 来启动 GoFrame 微服务。 get github.com/rookie-ninja/rk-boot go get github.com/rookie-ninja/rk-gf 快速开始 通过 rk-boot ,用户可以轻松搭建 GoFrame 完整例子 1.创建 boot.yaml boot.yaml 文件描述了 GoFrame 框架启动的元信息,rk-boot 通过读取 boot.yaml 来启动 GoFrame。 "github.com/rookie-ninja/rk-boot" "github.com/rookie-ninja/rk-gf/boot" ) // @title RK Swagger for GoFrame
比如,我们可以通过如下文件,在一个进程中同时启动 gRPC, Gin, Echo, GoFrame 框架。统一团队内部的微服务布局。 8081/rk/v1/healthy {"healthy":true} # Echo $ curl localhost:8082/rk/v1/healthy {"healthy":true} # GoFrame /rookie-ninja/rk-boot/grpc rk-grpc Echo Stable go get github.com/rookie-ninja/rk-boot/echo rk-echo GoFrame 验证中间件 RateLimit RPC 限速中间件 Timeout RPC 超时中间件 CORS CORS 中间件 JWT JWT 验证 Secure 服务端安全中间件 CSRF CSRF 中间件 GoFrame
[up-9fc663ae0dab51ab8d6a7b6fe75bc20f44c.png] 介绍 通过一个完整例子,在基于 GoFrame 框架的微服务中添加 API 日志中间件。 我们将会使用 rk-boot 来启动 GoFrame 微服务。 1.创建 boot.yaml boot.yaml 文件描述了 GoFrame 框架启动的原信息,rk-boot 通过读取 boot.yaml 来启动 GoFrame。 详情: CommonService --- gf: - name: greeter # Required, name of GoFrame entry port # Required, port of GoFrame entry enabled: true # Required, enable GoFrame entry
Golang框架选型比较: goframe, beego, iris和gin 评估指标1 ? Golang框架选型比较: goframe, beego, iris和gin 横向比较1 ? Golang框架选型比较: goframe, beego, iris和gin 横向比较2 ? Golang框架选型比较: goframe, beego, iris和gin 横向比较3 综合选择 经过一些比较以及内部团队的交流,目前公司主要选择goframe作为项目主体框架。 并且goframe的中文文档做得很棒,源码适合学习,团队容易快速上手。 来源: https://goframe.org/pages/viewpage.action?pageId=3673375
最近一直在分享GoFrame相关的文章,有朋友问我能不能搞一个技巧篇,能让新手少踩坑的那种。今天他来了! 大家还是看官方示例吧: 「模型关联-动态关联-ScanList」:https://goframe.org/pages/viewpage.action? pageId=1114326 「模型关联-静态关联-With特性」:https://goframe.org/pages/viewpage.action? 添加数据 goframe非常灵活,插入的数据可以是结构体也可以是map,也可以是map类型的切片,来实现批量添加。 配置方式如下: 配置文件链接:https://goframe.org/pages/viewpage.action?
此版本对核心功能进行了完善,也对大家提的一些建议及bug进行了修复;也诚请各位小伙伴们关注GoFrame项目发展,为生态添砖加瓦,加油助力! 加入了简单的管理员功能,可以对垃圾文章和垃圾回复进行清理; 加入Docker Compose一键部署,极大方便linux环境部署; 对网友的一些建议及上一版本bug进行了修复; 零、关于Focus Focus聚焦社区是GoFrame 社区项目,采用了简洁强大的GoFrame作为后端WEB框架, 由于前台系统需要SEO因此使用了GF自带template模板引擎,数据库用MySQL,前端使用jQuery/bootstrap框架。 127.0.0.1:3306)/focus" debug = true 5、运行:go run main.go 6、访问 http://127.0.0.1:8199 即可看到登录页面,默认账号/密码:goframe 六、框架设计 由于采用了强大易用的GoFrame开发框架,可以参考框架的一些设计介绍。
准备工作 前置条件 已安装Go语言开发环境,已配置好GOROOT、GOPATH环境变量 熟悉Go语言基本语法与使用 GoFrame文档:https://goframe.org/ 学习过程以官方文档为主, 创建一个goframe数据库,字符集为utf8 运行下列SQL,创建测试数据表 USE `goframe`; /*Table structure for table `book` */ DROP TABLE 至此,在GoFrame中使用数据库的准备工作才准备完毕,正式进入数据库操作部分。 在GoFrame中,基本上都不用手动写验证规则,框架里已经提供了很多内置的验证规则可以用来验证数据。 全局唯一数 s := guid.S() 接口文档 用规范路由的写法,GoFrame会自动生成接口文档。
rk-boot 提供了一个方便的方法,让用户快速实现网页【浏览和下载】静态文件的功能。
GoFrame Beego Iris Gin 比较版本 v1.15.2 v1.12.3 v12.0.2 v1.6.3 项目类型 开源(国内) 开源(国内) 开源(海外) 开源(海外) 开源协议 MIT - - 缓存管理 缓存管理 Cache - - 资源打包 资源管理 bee工具bale命令 - - 链路跟踪 链路跟踪 - - - 测试框架 单元测试 - Testing Testing 突出优点 goframe 综合选择 经过一些比较以及内部团队的交流,目前公司主要选择goframe作为项目主体框架。原因很简单,只有它满足了我们项目对于框架的基本要求。 并且goframe的中文文档做得很棒,源码适合学习,团队容易快速上手。 还有一个重要原因,我们的团队大部分都是PHP转Go,使用goframe写了几个demo就倍感亲切,容易在PHP团队中快速推广Golang技术。
gfEntry {"eventId": "8238e90e-5cd0-4da7-9f9b-7bb9b1946978", "entryName": "greeter", "entryType": "GoFrame 5cd0-4da7-9f9b-7bb9b1946978"} app={"appName":"rk","appVersion":"","entryName":"greeter","entryType":"GoFrame my-test-csrf-token > X-CSRF-Token:my-test-csrf-token > < HTTP/1.1 200 OK < Content-Type: application/json < Server: GoFrame my-test-csrf-token > X-CSRF-Token:my-test-csrf-token > < HTTP/1.1 200 OK < Content-Type: application/json < Server: GoFrame localhost:8080/v1/hello ... > X-CSRF-Token:my-test-csrf-token > < HTTP/1.1 403 Forbidden < Server: GoFrame