Здравствуйте, товарищи! Помогите пожалуйста разобраться.
Пытаюсь создать REST API на Golang. Использую сторонние пакеты
mux
(
Gorilla Mux) and
pq
(
PostgreSQL driver) для этих целей. ORM не собираюсь использовать.
Столкнулся со следующей проблемой. В файле
factors.go пытаюсь использовать
структуру Application, которая была описана в файле
application.go. Файлы
factors.go и
application.go относятся к одному пакету. Как правильно в файле
application.go вызвать функцию GetFactors? Как в файле
factors.go правильно использовать структуру
Application? Возможно нужно сделать редизайн?!
Структура проекта выглядит следующим образом:
main.go
application.go
controllers
factors.go
main.go:package main
func main() {
application := Application{}
application.Initialization()
application.Run("localhost:8000")
}
application.go:package main
import (
"database/sql"
"github.com/gorilla/mux"
"log"
"net/http"
"rest-api/configurations"
"rest-api/controllers"
)
type Application struct {
Router *mux.Router
Database *sql.DB
}
func (application *Application) Initialization() {
var err error
application.Database, err = configurations.DatabaseConnection()
if err != nil {
log.Fatal(err)
}
application.Router = mux.NewRouter()
application.Router.StrictSlash(true)
application.InitializeRoutes()
}
func (application *Application) Run(address string) {
log.Fatal(http.ListenAndServe(address, application.Router))
}
func (application *Application) InitializeRoutes() {
application.Router.HandleFunc("/api/factors", controllers.GetFactors).Methods("GET")
// Остальной код
}
factors.go:
package main
import (
"net/http"
)
func (application *Application) GetFactors(rw http.ResponseWriter, request *http.Request) {
// Остальной код
}