golang web php,GitHub - kai-xx/goWeb: golang web 接口实现 -- 类似PHP的laravel
goWeb
gorose orm+dotweb框架實(shí)現(xiàn)接口 -- 類似PHP的laravel
項(xiàng)目結(jié)構(gòu)說明
因?yàn)?gorose orm 和 dotweb 框架 都是基于獨(dú)立的組件, 所以我們可以對項(xiàng)目的目錄做出自由的規(guī)劃.
在這里, 我們便規(guī)劃一個遵循一般的mvc結(jié)構(gòu)的項(xiàng)目目錄.
為了項(xiàng)目的易維護(hù)性和高可用性, 我們盡量采取成熟的架構(gòu), 分離業(yè)務(wù)模塊, 這里就借鑒 php 界最火爆的框架拉 laravel 的設(shè)計思想, 做出簡單的涉設(shè)計架構(gòu)
目錄大致如下:
路由: /router/
放置所有路由, 這里會用到dotweb的路由組件, 所有請求的入口都會經(jīng)過這里
控制器: /controller/
放置所有控制器, 這里就是基本的業(yè)務(wù)邏輯處理曾
數(shù)據(jù)操作: /model/
放置所有model, 這里就是gorose orm的主戰(zhàn)場, 所有的數(shù)據(jù)庫操作都在這里完成
中間件: /middleware/
放置所有中間件, 這里可以放置各種狂拽酷炫吊炸天的組件
入口目錄: /bootstrap/
系統(tǒng)中用到的組件, 統(tǒng)一在這里驅(qū)動, 便于維護(hù)管理, 本項(xiàng)目主要包含gorose和dotweb在這里驅(qū)動
配置目錄: /config/
必須是放置所有的配置文件在這里
日志目錄: /log/
這個沒什么說的
成型目錄結(jié)構(gòu)
goWeb
bootstrap
bootDatabase.go
bootRouter.go
config
database.go
middleware
Auth.go
controller
Goods.go
model
Goods.go
router
route.go
main.go
以上各個組件, 除了model模塊采用gorose的orm組件之外, 路由和部分中間件模塊均由dotweb中對應(yīng)的組件來完成, 這里就更能提現(xiàn)出組件化框架dotweb的強(qiáng)大之處了
路由說明
這里用到了 dotweb 的相關(guān)組件, 有 HttpServer , Context 和 cors 中間件
他們分別作用于 路由, 請求參數(shù)等相關(guān)和中間件(比如跨域) 等
Route.GET 代表該請求位 get 請求
Route.POST 代表該請求位 post 請求
Route.Group 將請求歸類
Route.Group.Use 使用中間件
option 中間件初始化
cors.Middleware(option) 加載中間件option
controller.xxxxx 加載控制器的對應(yīng)方法
控制器和模型說明
// 控制器
func GetGoodsById(context dotweb.Context) error {
res := model.GetGoodsById(context)
ctx.WriteJson(utils.SuccessReturn(res))
return nil
}
說明:
context 請求的內(nèi)容
context.WriteJson 返回 json 格式數(shù)據(jù)
utils.SuccessReturn 工具包中封裝的成功返回函數(shù)
model 引入的模型目錄, 內(nèi)容如下:
// 模型
func GetGoodsById(context dotweb.Context) interface{} {
res, err := bootstrap.DB.Table("goods").
Where("id", context.FormValue("id")).
First()
if err != nil {
return ""
}
return res
}
測試
啟動服務(wù)
go run main.go
出現(xiàn)如下信息
start……,port:8099,visit:http://localhost:8099
部署上線
打包項(xiàng)目
go build main.go
運(yùn)行項(xiàng)目
nohup ./main &
總結(jié)
以上是生活随笔為你收集整理的golang web php,GitHub - kai-xx/goWeb: golang web 接口实现 -- 类似PHP的laravel的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 超狠超霸气的男生网名140个
- 下一篇: 很有朝气的阳光女生网名139个