Hej. Szybkie pytanko na które internet tak łatwo nie odpowiada. Jak podzielić poprawnie apkę, która ma bazę danych i mux'a.
Ostatnią apkę zrobiłem na takiej zasadzie:
main.go
db/
app/
model.go
main.go
routes.go
w database mam package db
i tam zdefiniowane wszystko co mi potrzebne.
w app mam package app
i tam całą apkę podzielona na modele i endpointy
a w głównym main.go mam:
func main() {
database, err := db.CreateDatabase()
if err != nil {
log.Fatal("Database connection failed: %s", err.Error())
}
app := &app.App{
Router: mux.NewRouter().StrictSlash(true),
Database: database,
}
app.SetupRouter()
log.Fatal(http.ListenAndServe(":8080", app.Router))
}
I z tego też powodu, nie za bardzo wiem jak to rozszerzyć. Chiałbym mieć rest api podzielone na pakiety w następujący sposób. Każdy fragment apki to osobny pakiet z ustalonymi route i model np.
main.go
db/
user/
productA/
productB/
productC/
Z moim aktualnym sposobem nie za bardzo wiem jak to osiągnać.