GoFrame 是一个开源的、高性能的 Web 开发框架,它是基于 Go 语言编写的,由国内开发者维护。GoFrame 提供了一套完整的解决方案,可以帮助开发者快速构建出高性能、高可用性的 Web 应用。GoFrame 的教程是专门为初学者准备的,旨在帮助初学者快速入门 GoFrame 框架,并使用它来开发 Web 应用。
GoFrame 教程包含了从安装到使用 GoFrame 的所有步骤,包括如何安装 GoFrame、如何使用 GoFrame 的核心功能、如何使用 GoFrame 的工具和库以及如何使用 GoFrame 创建一个 Web 应用等。教程中还会介绍一些有关 Go 语言的基本知识,以便初学者能够理解并更好地使用 GoFrame。
// 使用 go get 安装 goframe go get -u github.com/goframe/goframe // 使用 goframe 创建 web 项目 goframe new myproject // 运行 web 项目 cd myproject && goframe run
视频地址:https://www.bilibili.com/video/BV15R4y1G7hq/
包含以下内容:
GoFrame CLI
CLI
创建一个Go项目
视频地址:https://www.bilibili.com/video/BV1b44y1M7oL/
代码地址:https://github.com/gogf/gf-demo-user
我们以一个简单的API Service
为例来介绍如何使用GoFrame
框架以及相应的CLI
工具来开发一个接口项目。
包含以下内容:
我们通过curl
命令来对其中两个接口执行简单的测试。
用户注册 - /user/signup
注册一个账号test001
,昵称为john
,密码为123456
。
curl -d "nickname=john&passport=test001&password=123456&password2=123456" http://127.0.0.1:8199/user/sign-up
{"code":0,"message":"","data":null}
我们再次使用刚才的信息注册一次试试。
curl -d "nickname=john&passport=test001&password=123456&password2=123456" http://127.0.0.1:8199/user/sign-up
{"code":50,"message":"Passport "test001" is already token by others","data":null}
用户登录 - /user/signin
我们先访问获取用户信息的接口,验证鉴权中间件是否生效。
curl http://127.0.0.1:8199/user/profile
Forbidden
我们用刚才注册的账号登录。
curl -i -d "passport=test001&password=123456" http://127.0.0.1:8199/user/sign-in
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin,Content-Type,Accept,User-Agent,Cookie,Authorization,X-Auth-Token,X-Requested-With
Access-Control-Allow-Methods: GET,PUT,POST,DELETE,PATCH,HEAD,CONNECT,OPTIONS,TRACE
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 3628800
Content-Type: application/json
Server: GoFrame HTTP Server
Set-Cookie: gfsessionid=14sc9nep0u6yl0cieluexn0n0w2008q7; Path=/; Expires=Wed, 09 Mar 2022 15:52:44 GMT; SameSite
Trace-Id: 4830f6adbb72da16f34b7162f93080d8
Date: Tue, 08 Mar 2022 15:52:44 GMT
Content-Length: 35
{"code":0,"message":"","data":null}
我们这里使用了-i
选项用于终端打印出服务端返回的Header
信息,目的是为了获取sessionid
。GF
框架默认的sessionid
名称为gfsessionid
,我们看到返回的Header
中已经有了,并且是通过Cookie
方式返回的。
随后我们再次访问获取用户信息接口,并且这次提交gfsessionid
,该信息可以通过Header
也可以通过Cookie
提交,服务端都是能够自动识别的。
curl -H "gfsessionid:14sc9nep0u6yl0cieluexn0n0w2008q7" http://127.0.0.1:8199/user/profile
{"code":0,"message":"","data":{"id":1,"passport":"test001","password":"123456","nickname":"john","createAt":"2022-03-08 23:51:40","updateAt":"2022-03-08 23:51:40"}}
执行Shell命令package mainimport ("github.com/gogf/gf/v2/os/gproc""fmt")func main () {r, err := gproc.ShellExec(`sleep 3s...
我们可以通过RedirectTo/RedirectBack来实现页面之间的跳转,该功能通过LocationHeader实现。相关方法:func (r *Respon...
基本介绍http客户端支持对HTTP请求的输入与输出原始信息获取与打印,方便调试,相关方法如下:func (r *Response) Raw()...