diff --git a/api/registry/registry.go b/api/registry/registry.go index f11ffa9..d8bdd98 100644 --- a/api/registry/registry.go +++ b/api/registry/registry.go @@ -20,20 +20,34 @@ type APIEntry struct { } var apiEntryRegistry []APIEntry +var apiRegistry map[string]API var router *router2.APIRouter func init() { router = router2.NewAPIRouter() + apiRegistry = make(map[string]API) } func RegisterEntry(entry APIEntry) { apiEntryRegistry = append(apiEntryRegistry, entry) } +func RegisterAPI(api API) { + apiRegistry[api.Name()] = api +} + func GetEntryRegistry() []APIEntry { return apiEntryRegistry } +func GetAPI(name string) API { + if _, ok := apiRegistry[name]; !ok { + panic("API not found: " + name) + } + + return apiRegistry[name] +} + func GetRouter() *router2.APIRouter { return router }