最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

goframe重寫FastAdmin后端實現(xiàn)實例詳解

 更新時間:2023年12月10日 15:55:51   作者:IoTFast  
這篇文章主要為大家介紹了goframe重寫FastAdmin后端實現(xiàn)實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

時間大約是三年前,當(dāng)時我所在的團(tuán)隊是最早接觸 PHP 的,而團(tuán)隊其他成員都是用 Java。由于某些項目原因,我們決定全面轉(zhuǎn)向使用 GO 進(jìn)行開發(fā)。在當(dāng)時,我們并不想花太多時間去折騰 REACT 和 VUE 這些前端框架,我們更傾向于使用 jQuery 來開發(fā),因為我們喜歡它的快感。

于是我想到了一個基于 ThinkPHP 和 Bootstrap 的快速后臺開發(fā)框架,叫做 FastAdmin。我之前使用過它做過項目,發(fā)現(xiàn)速度很快,而且學(xué)習(xí)成本也很低。于是,我們決定將原本用 ThinkPHP 寫的后端代碼用 Goframe 重新實現(xiàn)了一遍,并且使用 FastAdmin 的前端規(guī)范和框架。我們內(nèi)部把它叫做 FastGoAdmin。

原本我想花點時間整理一下代碼,將業(yè)務(wù)邏輯和框架分離,然后開源分享出來。但由于一直忙于產(chǎn)品開發(fā),沒有時間進(jìn)行整理。今天我先在這里留個記錄,如果有很多人關(guān)注的話,我就會花時間整理代碼并開源出來。另外,我也要感謝 FastAdmin 的作者,他提供了一個簡單易用的設(shè)計思想。

FastGoAdmin 框架

FastGoAdmin 框架支持一鍵生成 CRUD,根據(jù)數(shù)據(jù)表可以自動產(chǎn)生控制器、模型、視圖、JS、語言包、菜單、回收站等。

FastGoAdmin 的目標(biāo)是為開發(fā)者提供一個能夠單獨完成前后端開發(fā)的能力,約定優(yōu)于配置,配置優(yōu)于開發(fā),開發(fā)優(yōu)于重復(fù)。

主要特性

包括:

  • 基于 Auth 驗證的權(quán)限管理系統(tǒng)
  • 一鍵生成 CRUD
  • 支持無限級父子級權(quán)限繼承,父級管理員可以任意增刪改子級管理員并設(shè)置權(quán)限
  • 支持單管理員多角色
  • 支持用戶部門管理
  • 支持?jǐn)?shù)據(jù)權(quán)限,可以對管理員管轄的數(shù)據(jù)進(jìn)行權(quán)限限制
  • 有插件應(yīng)用市場,可以進(jìn)行插件化開發(fā),實現(xiàn)即插即用的應(yīng)用
  • 支持多語言,內(nèi)置簡體中文、繁體中文和英文
  • 支持多模塊的開發(fā)

我們修改后的功能界面

我們把詳細(xì)頁面修改了一下

添加了插件管理功能

下面的部份代碼

//通用的查詢、新增、修改、刪除、查看 功能,由代碼產(chǎn)生后自帶CURD界面
func (a *openAuth) List(ctx context.Context, req *libModel.ApiPageReq) (total int, list []*entity.OpenAuth, err error) {
	boAttachment := &libService.BackendOption{Model: dao.OpenAuth.Table(), Ctx: ctx, DataLimit: true}
	total, err = libService.NewBackend(boAttachment).Index(req, &list)
	return
}
func (a *openAuth) Add(ctx context.Context, req *model.OpenAuthRow) (res *libModel.AdminApiRes, err error) {
	id, err := libService.NewBackend(&libService.BackendOption{Model: dao.OpenAuth.Table(), Ctx: ctx, DataLimit: true}).Add()
	if err != nil {
		return nil, gerror.New("添加失敗")
	}
	res = &libModel.AdminApiRes{
		Count: 1,
		Id:    id,
	}
	return
}
func (a *openAuth) Edit(ctx context.Context, req *model.OpenAuthRow, id uint64) (res *libModel.AdminApiRes, err error) {
	count, err := libService.NewBackend(&libService.BackendOption{Model: dao.OpenAuth.Table(), Ctx: ctx, DataLimit: true}).Edit(dao.OpenAuth.Columns().Id, id)
	if err != nil {
		return nil, gerror.New("修改失敗")
	}
	res = &libModel.AdminApiRes{
		Count: count,
	}
	return
}
func (a *openAuth) Del(ctx context.Context, req *libModel.ApiDelReq) (res *libModel.AdminApiRes, err error) {
	count, err := libService.NewBackend(&libService.BackendOption{Model: dao.OpenAuth.Table(), Ctx: ctx, DataLimit: true}).Del(dao.OpenAuth.Columns().Id, gstr.Split(req.Ids, ","))
	if err != nil {
		return nil, gerror.New("刪除失敗")
	}
	res = &libModel.AdminApiRes{
		Count: count,
	}
	return
}
func (a *openAuth) GetDetailById(ctx context.Context, id uint64) (row *entity.OpenAuth, err error) {
	err = libService.NewBackend(&libService.BackendOption{Model: dao.OpenAuth.Table(), Ctx: ctx, DataLimit: true}).GetDetailById(id, &row)
	return
}

以上就是goframe重寫FastAdmin后端實現(xiàn)實例詳解的詳細(xì)內(nèi)容,更多關(guān)于goframe重寫FastAdmin后端的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • go:垃圾回收GC觸發(fā)條件詳解

    go:垃圾回收GC觸發(fā)條件詳解

    這篇文章主要介紹了go:垃圾回收GC觸發(fā)條件詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Go語言中動態(tài)調(diào)用不同簽名的函數(shù)的實現(xiàn)

    Go語言中動態(tài)調(diào)用不同簽名的函數(shù)的實現(xiàn)

    本文主要介紹了Go語言中動態(tài)調(diào)用不同簽名的函數(shù)的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-05-05
  • go連接mysql的項目實踐

    go連接mysql的項目實踐

    本文主要介紹了go連接mysql的項目實踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • golang如何使用指針靈活操作內(nèi)存及unsafe包原理解析

    golang如何使用指針靈活操作內(nèi)存及unsafe包原理解析

    本文將深入探討unsafe包的功能和原理,同時,我們學(xué)習(xí)某種東西,一方面是為了實踐運用,另一方面則是出于功利性面試的目的,所以,本文還會為大家介紹unsafe?包的典型應(yīng)用以及高頻面試題,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • Golang 錯誤捕獲Panic與Recover的使用

    Golang 錯誤捕獲Panic與Recover的使用

    對于Go語言的錯誤是通過返回值的方式,本文主要介紹了Golang 錯誤捕獲Panic與Recover的使用,文中根據(jù)實例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Go語言中的if條件語句使用詳解

    Go語言中的if條件語句使用詳解

    這篇文章主要介紹了Go語言中的if條件語句的使用,包括if...else語句以及相關(guān)嵌套,需要的朋友可以參考下
    2015-10-10
  • go中實現(xiàn)字符切片和字符串互轉(zhuǎn)

    go中實現(xiàn)字符切片和字符串互轉(zhuǎn)

    這篇文章主要為大家詳細(xì)介紹了go語言中如何實現(xiàn)字符切片和字符串互轉(zhuǎn),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解一下
    2023-11-11
  • 自動生成代碼controller?tool的簡單使用

    自動生成代碼controller?tool的簡單使用

    這篇文章主要為大家介紹了自動生成代碼controller?tool的簡單使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • go語言中如何使用select的實現(xiàn)示例

    go語言中如何使用select的實現(xiàn)示例

    本文主要介紹了go語言中如何使用select的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • 提升編程技能:學(xué)習(xí)如何在Go語言中正確格式化時間

    提升編程技能:學(xué)習(xí)如何在Go語言中正確格式化時間

    想知道如何在Go語言中輕松地格式化時間嗎?別再浪費時間了!本文將帶你快速入門,讓你的代碼更加優(yōu)雅高效,快來學(xué)習(xí)吧!
    2024-01-01

最新評論

盘锦市| 尼勒克县| 大新县| 鄄城县| 蒙山县| 贡觉县| 南宁市| 孝义市| 江门市| 湟源县| 石首市| 墨竹工卡县| 离岛区| 忻城县| 个旧市| 承德县| 枣庄市| 板桥市| 彰武县| 全南县| 沙湾县| 延津县| 南江县| 海晏县| 江城| 天祝| 剑川县| 河北区| 沙河市| 卓尼县| 南投县| 天全县| 渝中区| 宣恩县| 枝江市| 繁峙县| 日土县| 乐业县| 社会| 洛川县| 丹寨县|