Gokvadmin 是一個用於管理鍵值資料庫的簡約 Web 介面。它提供新增、刪除和搜尋金鑰的功能。
Gokvadmin 允許插入自訂引擎以滿足您的所有引擎需求;)
若要開始使用 Gokvadmin,請安裝 Go 1.8 或更高版本並執行go get
:
$ go get github.com/sigurniv/gokvadmin
目前 Gokvadmin 支援一些嵌入式鍵值資料庫:
嵌入式儲存通常會取得資料檔案/目錄的鎖定。 Gokvadmin 允許重複使用目前現有的資料庫連接,這使得可以將其與正在運行的應用程式一起使用。
Gokvadmin 預設在:8083
啟動net/http
Web 伺服器,並提供$GOPATH/github.com/sigurniv/gokvadmin/assets
資料夾中的靜態檔案。
package main
import (
"github.com/sigurniv/gokvadmin"
)
func main () {
// Create database connection
db := ... // *bolt.DB
//Use default gokvadmin config
config := gokvadmin . DefaultConfig
admin , _ := gokvadmin . NewGoKVAdmin ( "boltdb" , db , config )
go admin . Run () // listen and serve on 0.0.0.0.:8083
}
Gokvadmin 在內部使用 gorilla/mux 和 net/http。路由器和伺服器分別在 gokvadmin 結構體的 Router 和 Server 欄位下可用。這允許根據您的需求定制兩者。
package main
import (
"github.com/sigurniv/gokvadmin"
"time"
)
func main () {
// Create database connection
db := ... // *bolt.DB
config := gokvadmin . DefaultConfig
admin , _ := gokvadmin . NewGoKVAdmin ( "boltdb" , db , config )
//Customize the Server instance
admin . Server . Addr = ":3001"
admin . Server . WriteTimeout = time . Second * 15
go admin . Run () // listen and serve on 0.0.0.0.:3001
}
預設情況下,Gokvadmin 不使用身份驗證,因此任何人都可以登入儀表板,但您可以新增登入/密碼驗證。
package main
import (
"github.com/sigurniv/gokvadmin"
)
func main () {
// Create database connection
db := ... // *bolt.DB
config := gokvadmin . DefaultConfig
config . Auth = & gokvadmin. Auth {
Login : "login" ,
Password : "password" ,
}
admin , _ := gokvadmin . NewGoKVAdmin ( "boltdb" , db , config )
go admin . Run () // listen and serve on 0.0.0.0.:8083
}
要使用 TLS,您需要將TLS
結構傳遞給配置對象
package main
import (
"github.com/sigurniv/gokvadmin"
)
func main () {
// Create database connection
db := ... // *bolt.DB
config := gokvadmin . DefaultConfig
config . TLS = & gokvadmin. TLS {
CertFile : "server.crt" ,
KeyFile : "server.key" ,
}
admin , _ := gokvadmin . NewGoKVAdmin ( "boltdb" , db , config )
go admin . Run () // listen and serve on 0.0.0.0.:8083
}
您可以新增自訂引擎以與 Gokvadmin 一起使用。您所需要做的就是實作 Engine 介面並註冊它。
package main
import (
"github.com/sigurniv/gokvadmin"
)
func main () {
// Create database connection
db := ... // Your db connection
//Use your custom engine
gokvadmin . RegisterEngine ( "custom_engine" , & YourCustomEgine {})
config := gokvadmin . DefaultConfig
admin , _ := gokvadmin . NewGoKVAdmin ( "custom_engine" , db , config )
go admin . Run () // listen and serve on 0.0.0.0.:8083
}
Gokvadmin 使用 Vue.js 作為前端。可以為您的自訂引擎自訂佈局。 Gokvadmin 隨附捆綁的assets/dist/build.js
和assets/dist/bootstrap.min.css
檔案。它使用 vue.js webpack-simple 模板,因此您需要做的就是開始編寫前端部分:
$ npm init
$ npm run dev
在assets/src/engines
資料夾中建立自訂元件,並將其註冊到assets/src/store/modules/engines.js
檔案中。
import YourCustomEngineComponent from '../../components/engines/YourCustomEngineComponent.vue' ;
const state = {
engines : {
'default' : General ,
'boltdb' : General ,
'badger' : General ,
"custom_engine" : YourCustomEngineComponent
} ,
...
} ;
若要新增自訂路由,您的引擎必須實作 RouterEngine 接口
func ( e CustomEngine ) AddRoutes ( r * mux. Router ) {
r . HandleFunc ( "/api/custom-engine/hello" , func ( w http. ResponseWriter , r * http. Request ) {
w . Header (). Set ( "Content-Type" , "application/json" )
w . Write ([] byte ( "hello from custome-engine" ))
return
}). Methods ( http . MethodGet )
}