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 البسيط، لذا كل ما عليك فعله لبدء برمجة جزء الواجهة الأمامية هو:
$ 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 )
}