portal/api/registry/registry.go

40 lines
626 B
Go

package registry
import (
"context"
router2 "git.lumeweb.com/LumeWeb/portal/api/router"
"go.uber.org/fx"
)
type API interface {
Name() string
Init() error
Start(ctx context.Context) error
Stop(ctx context.Context) error
}
type APIEntry struct {
Key string
Module fx.Option
InitFunc interface{}
}
var apiRegistry []APIEntry
var router router2.ProtocolRouter
func init() {
router = make(router2.ProtocolRouter)
}
func Register(entry APIEntry) {
apiRegistry = append(apiRegistry, entry)
}
func GetRegistry() []APIEntry {
return apiRegistry
}
func GetRouter() router2.ProtocolRouter {
return router
}