Gokvadmin เป็นเว็บอินเตอร์เฟสที่เรียบง่ายสำหรับจัดการฐานข้อมูลคีย์-ค่า มีการเพิ่ม ลบ และค้นหาคีย์
Gokvadmin อนุญาตให้เสียบเอ็นจิ้นแบบกำหนดเองสำหรับทุกความต้องการเอ็นจิ้นของคุณ ;)
หากต้องการเริ่มใช้ Gokvadmin ให้ติดตั้ง Go 1.8 หรือสูงกว่าแล้วรัน go get
:
$ go get github.com/sigurniv/gokvadmin
ปัจจุบัน Gokvadmin รองรับฐานข้อมูลคีย์-ค่าแบบฝังบางส่วน:
ที่เก็บข้อมูลแบบฝังมักจะได้รับการล็อคในไฟล์ข้อมูล/ไดเร็กทอรี Gokvadmin อนุญาตให้นำการเชื่อมต่อฐานข้อมูลที่มีอยู่ในปัจจุบันกลับมาใช้ใหม่ได้ ซึ่งทำให้สามารถใช้งานร่วมกับแอปพลิเคชันที่รันอยู่
Gokvadmin เริ่ม net/http
เว็บเซิร์ฟเวอร์ที่ :8083
ตามค่าเริ่มต้น และให้บริการไฟล์คงที่จากโฟลเดอร์ $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 ตามลำดับ ซึ่งช่วยให้ปรับแต่งทั้งสองอย่างตามความต้องการของคุณได้
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 สิ่งที่คุณต้องทำคือใช้อินเทอร์เฟซของเครื่องยนต์และลงทะเบียน
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 )
}