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