Go Newbie di sini saya ingin membangun aplikasi API istirahat menggunakan Gin misalnya untuk membuat basis data di aplikasi ini, saya ingin menjalankan fungsi yang berbeda tergantung pada jalur URI saya, saya tahu bahwa saya bisa melakukannya seperti ini: ...

go
0
Peter 5 April 2021, 21:51

1 menjawab

Jawaban Terbaik

Gunakan pola registri:

package dbpkg

var Databases = map[string]func() database {}


func dbCreate(c *gin.Context) {
   serviceName := c.Params.ByName("service")
   db:=Databases[serviceName]()
   // Handle errors
   // work with db
 }

Daftarkan fungsi untuk membuat instance layanan:

package mysqldb

type MySQL struct {...}

func init() {
   dbpkg.Databases["mysql"]=func() dbpkg.database {return &MySQL{}}
}
...

 
2
Burak Serdar 5 April 2021, 18:59