简明教程
English document
Golang-pangu是一个用Go语言开发的一站式服务开发的技术解决方案,它整合了 JWT(JSON Web Tokens), Postgres, Redis, Docker, Gin, Ginkgo, Gorm等多项业界尖端技术,它是后端项目开发的起点,可作为开发者强有力的生产工具。
Golang-pangu基于以下的工具
名字 | 描述 |
---|---|
Go | 最近几年最为流行的新兴语言,简单的同时拥有极高的并发性能。 |
Gin | 基于Go语言的web框架,方便灵活的中间件,强大的数据绑定,以及极高的性能 |
Gorm | Go语言的全功能ORM库,用于操作数据库 |
Ginkgo | Ginkgo是一个BDD风格的Go测试框架,旨在帮助你有效地编写富有表现力的全方位测试。 |
JWT | JSON Web Tokens,是目前最流行的跨域认证解决方案。 |
Postgres | 高性能开源数据库,当整体负载达到很高时依旧能有强大的性能 |
Redis | 内存数据库,拥有极高的性能 |
Docker | 开发、部署、运行应用的虚拟化平台 |
.
├── application.yml
├── args
│ ├── args.go
│ └── cmd.go
├── conf
│ ├── conf_debug.go
│ ├── conf.go
│ └── conf_release.go
├── controller
│ ├── application.go
│ ├── auth.go
│ ├── error.go
│ └── session.go
├── db
│ └── db.go
├── Dockerfile
├── go.mod
├── go.sum
├── jwt
│ └── jwt.go
├── main.go
├── Makefile
├── middleware
│ └── middleware.go
├── models
│ ├── base_model.go
│ └── user.go
├── params
│ └── params.go
├── README.md
├── redis
│ └── redis.go
├── routers
│ └── router.go
├── test
│ ├── sign_in_test.go
│ └── test_suite_test.go
└── util
└── util.go
文件 | 功能 |
---|---|
application.yml | 配置文件,包含基本信息 |
args | 包含获取url的params的函数 |
conf | 获取配置文件的函数 |
controller | router使用的handler控件,包含各种操作具体内容 |
db | db操作,像是打开数据库 |
jwt | jwt相关内容 包含生成jwt与验证jwt的函数 |
main.go | 程序主函数,执行时增加-db参数可选择不同的内容,create创建数据库,migrate更新表结构,drop删除数据库 |
middleware | 中间件,验证token是否正确 |
models | 基础的结构以及一些基本的数据库操作 |
params | 数据绑定的结构 |
redis | 包含连接redis和redis操作函数 |
router | 路由 |
test | 测试 |
i18n | 国际化包 |
influx | influx数据库操作 |
- 安装postgres和redis数据库
- 配置根目录下的 application.yml 配置文件
`make create`(创建数据库) 或者 `go run main.go -db=create`
`make migrate`(初始数据库表) 或者 `go run main.go -db=migrate`
`make watch`(支持热更新) 或者 `go run main.go`
- 在浏览器打开
http://localhost:3002/ping
会显示pong,表明服务成功部署
-
Post
http://localhost:3002/users/sign_up
params: email, password, password_confirm
-
Post
http://localhost:3002/users/sign_in
params: email, password, login_type, DEVICE_TYPE
成功后会在头部返回Authorization,这是后续用户接口需要的token
-
Get
http://localhost:3002/auth_ping
需要user的token的接口
-
Post
http://localhost:3002/users/change_password
修改用户密码,需要user的token
-
Post
http://localhost:3002/cities
params: language
设置成en时,返回英文城市列表,zh时为中文城市列表
腾讯云服务,需要自行在application配置文件设置key
-
Get
http://localhost:3002/sms
params: mobile
发送短信接口
需要安装influxdb后,修改main.go然后执行初始化操作
-
Post
http://localhost:3002/influx_save
params: user_name, local, version
将结构化数据保存在influxdb数据库
-
Post
http://localhost:3002/influx_save
读取influxdb数据库
支付宝支付接口,需要自行在application配置文件设置key
-
Post
http://localhost:3002/alipay
创建支付宝账单
-
Post
http://localhost:3002/alipay_notify
接收支付信息的回调
Rails-pangu 基于 Rails 6(API Only) 框架搭建的一站式服务开发的技术解决方案
产品 | 描述 |
---|---|
eSheep | 电子绵羊eSheep是一款网络加速器,它可以帮助身在海外的您极速连接中国的视频音乐网站。 |
cs-server | 客服服务(未来上线) |
soda-server | 未来上线 |
代码和文档版权归2019年MIT许可下发布的Golang-pangu Authors 和 Ruilisi Network所拥有。
致谢 (emoji key):
hophacker 💻 📖 🚇 |
Tony 💻 📖 |
Ganggou 💻 📖 |
ExcitingFrog 💻 📖 |
Leo7991 💻 📖 |
Daxigua443 💻 📖 |
Soryu23 💻 📖 |
该项目遵循贡献者规范。欢迎任何形式的捐助!