在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于gin封裝的web服務框架升級

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2023-12-05 09:33 ? 次閱讀

自動生成框架內容可前往開源項目gingen按如下命令執行


mkdir testServer
cd testServer
./gingen init --mod testServer

項目地址:github.com/Benny66/gin…

app

項目工程主要代碼文件夾目錄,包括api層、model模型數據層、service邏輯層;

api層請求入口處理,參數校驗,數據返回

model模型數據層是數據交互層,常見的數據庫操作方法,數據聚合方法

邏輯層是項目核心業務邏輯的處理層;

api層

api層連同schema模塊接受處理請求參數,做數據校驗、清洗返回等


type UserInterface interface {
  Login(context *gin.Context)
  Refresh(context *gin.Context)
  Logout(context *gin.Context)
  UpdatePassword(context *gin.Context)
}


var UserApi UserInterface = &userApi{}


type userApi struct{}

model【模型數據層】

model就是對數據庫表名和表內字段進行模型定義的模塊。

ModelTime定義自動轉換存儲和查詢時間格式

可定義模型對應的表名稱和表字段

dao 是基于gorm對數據進行增刪查改的模塊,通過inteface接口暴露調用接口

Create和update 對數據的創建和修改操作均需要開啟事務,在邏輯層進行控制開啟、回滾和提交。

常見封裝的方法包括增刪查改、分頁查詢(Paginate)、查詢全部(FindAll)、按條件查詢(WhereQuery)、關聯查詢(Joins)、預加載(Preloads)等等方法


func (dao *userDao) Create(tx *gorm.DB, data *model.User) (rowsAffected int64, err error) {
  db := tx.Create(data)
  if err = db.Error; db.Error != nil {
    return
  }
  rowsAffected = db.RowsAffected
  return
}
func (dao *userDao) WhereQuery(query interface{}, args ...interface{}) *userDao {
  return &userDao{
    dao.gm.Where(query, args...),
  }
}
func (dao *userDao) Joins(query string, args ...interface{}) *userDao {
  return &userDao{
    dao.gm.Joins(query, args),
  }
}

service【邏輯層】

service【邏輯層】是主要的代碼層,開發人員基本上在這個模塊上進行開發和修復bug,實現各自項目的邏輯,是最核心的內容

api模塊是對接路由的方法入口,基本上一個業務模塊對應一個文件,例如登錄模塊的各接口可以命名為user.go

define模塊用于定義數據結構類型的目錄,不同的業務類型和邏輯,需要定義不同的請求參數和返回參數結構,例如定義type UserLoginApiReq struct來接收登錄接口的參數類型

service模塊,顧名思義就是業務邏輯服務的處理模塊,其中包括對請求數據參數的校驗、業務邏輯處理數據,調用數據層進行保存數據庫

router.go對接路由,統一定義

config【系統配置】

系統的配置模塊,config.go,包括服務信息、數據庫信息、日志配置信息、ws配置信息等等

db【數據庫】

數據庫文件夾模塊,目前使用的mysql、redis數據存儲

migrations【數據遷移】

數據遷移文件模塊,項目初始化或升級的時候可進行數據庫的數據庫遷移腳本命令;

需要在根目錄添加install.lock才可進行數據庫遷移執行

public【公共模塊】

項目的公共模塊,包括:image、html、css、js等文件

routers【路由】

啟動web服務時,初始化gin的路由模塊,啟動服務

runtime

runtime模塊,保存日志logs、緩存cache等文件

utils

項目框架需要的工具包,包括:自我封裝的庫以及調用第三方封裝的庫






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • MySQL
    +關注

    關注

    1

    文章

    819

    瀏覽量

    26643
  • Schema
    +關注

    關注

    0

    文章

    4

    瀏覽量

    6480
  • Redis
    +關注

    關注

    0

    文章

    376

    瀏覽量

    10896

原文標題:基于gin的封裝的web服務框架升級,新增自動生成代碼并開源倉庫

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【米爾-全志T113-i開發板試用】4、使用Gin框架搭建簡易的web server和提供設備信息獲取接口

    快速的路由功能、中間件支持、參數解析、JSON/XML響應等功能,使得編寫Web應用變得簡單和高效。可以使用Gin框架來構建RESTful API、Web
    發表于 02-22 16:23

    五大Python Web框架詳解

    用于Python的、簡單而非常有用的Web框架,其主要作用是以盡可能少的操作將Web服務器與Python代碼連接,其功能包括內置的分析功能、靈活的插件系統以及一次運行多個HTTP
    發表于 02-06 17:17

    Web框架使用哪些編程語言?

    實現js在服務器端的編譯,而且擁有更好的組織代碼,提升復用性,非常適合在分布式設備上運行數據密集型的實時應用。2. PHPPHP是Web架構開發常用語言,PHP開發了很多Web框架,如
    發表于 03-28 16:53

    主流web前端技術框架

    Web架構是為解決Web開發中開放性問題而設計的具有一定約束性的支撐結構,使用框架可以幫助快速實現Web開發,并解決開發過程中遇到的常規問題!以下是2018年常用的
    發表于 03-28 16:56

    Web網絡服務模塊實現程序自動升級功能

    Web網絡服務模塊——下載升級文件
    發表于 04-03 10:55

    尋找!嵌入式linux利用web服務升級

    利用http搭建一個服務器,通過web端操作,+后臺服務端+終端升級嵌入式linux通過服務端后臺對設備進行遠程
    發表于 06-24 11:11

    基于工作流技術的復合語義Web服務框架

    隨著Internet和Web應用的快速發展,Web應用模式及Web服務的異構和分散問題日益突出,如何復合繁復而龐大的Web
    發表于 03-31 10:01 ?16次下載

    一種支持QoS約束的語義Web服務發現框架

    針對當前語義Web服務發現缺乏OoS約束的問題,構建一個支持QoS約束的語義Web服務發現框架。使用QoS認證中心確保QoS信息的動態更新。
    發表于 03-31 10:17 ?10次下載

    基于Web 服務的應用集成框架的研究和應用

    文中闡述了企業信息化的現狀及其存在的問題,并分析了傳統企業應用集成(EAI)的不足和缺陷,提出了基于Web 服務的應用集成框架(WS-EAI)。并對WS-EAI 框架組成進行了系統闡
    發表于 05-25 13:55 ?10次下載

    基于WSDM的Web服務管理框架設計與實現

    隨著Web 服務的廣泛應用,監控和管理這些IT 資源的需求也變得越來越迫切。為了對Web 服務進行有效的管理,OASIS 組織提出了Web
    發表于 01-15 17:04 ?14次下載

    基于擴展UDDI語義Web服務發現框架的研究

    傳統Web服務采用簡單分類和關鍵字的服務發現方法,造成查準率與查全率低。語義Web服務Web
    發表于 02-25 16:03 ?19次下載

    面向Web服務的電力系統信息集成平臺框架的研究白雨

    面向Web服務的電力系統信息集成平臺框架的研究_白雨
    發表于 03-15 08:00 ?0次下載

    Web服務組合匹配框架研究

    在現有服務發現方法中,單一考慮原子服務服務組合的方式難以滿足用戶日益增長的需求。針對該問題,設計一個基于模型轉換的Web服務匹配
    發表于 03-05 13:35 ?0次下載
    <b class='flag-5'>Web</b><b class='flag-5'>服務</b>組合匹配<b class='flag-5'>框架</b>研究

    基于用戶社群關系的Web服務發現系統框架

    ?;谛问交蟮纳缛宏P系提出了一個差分式服務發現策略,構建了一個基于用戶社群關系的Web服務發現系統框架,按照Web
    發表于 03-07 14:18 ?0次下載
    基于用戶社群關系的<b class='flag-5'>Web</b><b class='flag-5'>服務</b>發現系統<b class='flag-5'>框架</b>

    在micropython上搭建web框架web服務——新生代web框架:mpy-urouter

    大家好!之前我給 micropython 開發過一個名為 micro-route 的web框架,在使用的過程中發現這個框架在設計上有很多的缺陷,而且是經過一個星期的時間趕工出來的,代碼質量不太
    發表于 12-29 18:56 ?5次下載
    在micropython上搭建<b class='flag-5'>web</b><b class='flag-5'>框架</b>和<b class='flag-5'>web</b><b class='flag-5'>服務</b>——新生代<b class='flag-5'>web</b><b class='flag-5'>框架</b>:mpy-urouter
    主站蜘蛛池模板: 福利视频一区二区牛牛| 午夜亚洲国产| 欧美激情xxxx性bbbb| 日韩伊人网| 俺也来俺也去俺也射| 免费一级大片| 天天摸日日舔| 日日做日日摸夜夜爽| 天天爽夜夜操| 操农村妇女| 亚洲综合丁香| www四虎| 日本黄网站高清色大全| 一区二区三区国模大胆| 中文字幕一区在线| 成人黄色免费看| 久久久久久免费观看| 天天夜夜操| 九色亚洲| 久久亚洲国产午夜精品理论片| 国产自在自线午夜精品视频 | 同性同男小说肉黄| 在线毛片免费| 操她视频网站| 免费看黄色片网站| 午夜黄视频| 在线视频黄色| 91久久国产青草亚洲| 国产chinesetube| 亚洲一区二区精品视频| 色视频网站免费| 色先锋av资源中文字幕| 午夜理伦片免费| 婷婷99精品国产97久久综合| 天堂资源在线播放| 免费美剧在线观看| 2022欧美高清中文字幕在线看| 在线aa| 天天爱天天做天天爽天天躁| 天天爱天天做天天爽夜夜揉 | 国产1区2区三区不卡|