main.go 使用 APIConfig 传参
This commit is contained in:
@@ -16,6 +16,7 @@ type API struct {
|
|||||||
Db *database.Database
|
Db *database.Database
|
||||||
Server http.Server
|
Server http.Server
|
||||||
token string
|
token string
|
||||||
|
APIConfig APIConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
type Status struct {
|
type Status struct {
|
||||||
@@ -408,10 +409,16 @@ func (api *API) HandleGetFile(w http.ResponseWriter, r *http.Request) {
|
|||||||
io.Copy(w, src)
|
io.Copy(w, src)
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewAPI(dbName string, Addr string) (*API, error) {
|
type APIConfig struct {
|
||||||
|
DatabaseName string
|
||||||
|
Addr string
|
||||||
|
Token string
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewAPI(apiConfig APIConfig) (*API, error) {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
db, err := database.NewDatabase(dbName)
|
db, err := database.NewDatabase(apiConfig.DatabaseName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -422,9 +429,10 @@ func NewAPI(dbName string, Addr string) (*API, error) {
|
|||||||
api := &API{
|
api := &API{
|
||||||
Db: db,
|
Db: db,
|
||||||
Server: http.Server{
|
Server: http.Server{
|
||||||
Addr: Addr,
|
Addr: apiConfig.Addr,
|
||||||
Handler: mux,
|
Handler: mux,
|
||||||
},
|
},
|
||||||
|
APIConfig: apiConfig,
|
||||||
}
|
}
|
||||||
|
|
||||||
// mount api
|
// mount api
|
||||||
@@ -443,7 +451,7 @@ func NewAPI(dbName string, Addr string) (*API, error) {
|
|||||||
mux.Handle("/api/v1/", http.StripPrefix("/api/v1", apiMux))
|
mux.Handle("/api/v1/", http.StripPrefix("/api/v1", apiMux))
|
||||||
mux.Handle("/web/", http.StripPrefix("/web", http.FileServer(http.Dir("web"))))
|
mux.Handle("/web/", http.StripPrefix("/web", http.FileServer(http.Dir("web"))))
|
||||||
|
|
||||||
api.token = "pwd"
|
api.token = apiConfig.Token
|
||||||
|
|
||||||
return api, nil
|
return api, nil
|
||||||
}
|
}
|
||||||
|
|||||||
19
main.go
19
main.go
@@ -1,12 +1,29 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"flag"
|
||||||
"log"
|
"log"
|
||||||
"msw-open-music/internal/pkg/api"
|
"msw-open-music/internal/pkg/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var DatabaseName string
|
||||||
|
var Listen string
|
||||||
|
var Token string
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
flag.StringVar(&DatabaseName, "db", "/tmp/music.sqlite3", "sqlite3 database file path")
|
||||||
|
flag.StringVar(&Listen, "listen", ":8080", "http server listening")
|
||||||
|
flag.StringVar(&Token, "token", "mikusavetheworld", "secret token")
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
api, err := api.NewAPI("/tmp/test.sqlite3", ":8080")
|
flag.Parse()
|
||||||
|
apiConfig := api.APIConfig{
|
||||||
|
DatabaseName: DatabaseName,
|
||||||
|
Addr: Listen,
|
||||||
|
Token: Token,
|
||||||
|
}
|
||||||
|
api, err := api.NewAPI(apiConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user