日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

golang web php,GitHub - kai-xx/goWeb: golang web 接口实现 -- 类似PHP的laravel

發(fā)布時間:2023/12/2 php 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 golang web php,GitHub - kai-xx/goWeb: golang web 接口实现 -- 类似PHP的laravel 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

goWeb

gorose orm+dotweb框架實現(xiàn)接口 -- 類似PHP的laravel

項目結(jié)構(gòu)說明

因為 gorose orm 和 dotweb 框架 都是基于獨立的組件, 所以我們可以對項目的目錄做出自由的規(guī)劃.

在這里, 我們便規(guī)劃一個遵循一般的mvc結(jié)構(gòu)的項目目錄.

為了項目的易維護性和高可用性, 我們盡量采取成熟的架構(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ū)動, 便于維護管理, 本項目主要包含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的強大之處了

路由說明

這里用到了 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

部署上線

打包項目

go build main.go

運行項目

nohup ./main &

總結(jié)

以上是生活随笔為你收集整理的golang web php,GitHub - kai-xx/goWeb: golang web 接口实现 -- 类似PHP的laravel的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。