第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Gin 框架中開發(fā)的 REST API 的文件夾結(jié)構(gòu)和包命名約定

在 Gin 框架中開發(fā)的 REST API 的文件夾結(jié)構(gòu)和包命名約定

Go
狐的傳說 2023-07-04 14:50:20
我是一名 NodeJS / PHP 開發(fā)人員,并且是 Go 的初學(xué)者。經(jīng)過一些研究后,我為我的 REST API 項(xiàng)目提出了這樣的 MVC 風(fēng)格文件夾結(jié)構(gòu)。.+- bin/+- controllers/   +- userController/      +- userController.go+- models/   +- userModel/      +- userModel.go+- main.go因此,我可以讓我的代碼看起來像這樣:import "github.com/gin-gonic/gin"import "controllers/userController"router := gin.Default()router.GET("/user", userController.handleSomeLogicHere)但后來我發(fā)現(xiàn)根據(jù)GoLang官網(wǎng)的說法,不建議使用camel case和snake case進(jìn)行封裝。我想知道在 Go 中使用 MVC 是否不是一個好習(xí)慣(因?yàn)槲抑烙腥私ㄗh基于模塊/依賴項(xiàng)的文件夾結(jié)構(gòu))?或者我應(yīng)該將所有控制器和模型更改為一個詞,例如 usercontroller 或 userctrl (但這對我來說似乎有點(diǎn)連接)?
查看完整描述

1 回答

?
慕容708150

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個贊

我會稍微改變一下你的文件夾結(jié)構(gòu)。我不會為每個控制器提供單獨(dú)的包,而是將它們作為包的一部分controllers(當(dāng)我談?wù)摽刂破鲿r,同樣的思路也適用于模型)。


.

+- bin/

+- controllers/

   +- user.go

+- models/

   +- user.go

+- main.go

為此,我還會稍微更改代碼結(jié)構(gòu)以實(shí)例化控制器實(shí)例,如下所示:


import "models"

import "controllers"

import "github.com/gin-gonic/gin"


userController := controllers.UserController{

    Users: models.UserModel{}, //DO your stuff here

}


router := gin.Default()

router.GET("/user", userController.GetUser)

您可以按照自己的意愿為每個控制器創(chuàng)建一個新包,但它很容易會增長為大量包。通過將所有控制器保存在一個包中,可以更輕松地使用。


注意:隨著您的應(yīng)用程序的增長,可能需要創(chuàng)建子包。我能想到的一種情況是將所有僅管理控制器放在一個controllers/admin包中。


查看完整回答
反對 回復(fù) 2023-07-04
  • 1 回答
  • 0 關(guān)注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號