in pkg/config/api_config.go [109:157]
func initAPIConfigFromKVList(kList, vList []string) error {
var skList, svList, mkList, mvList []string
var baseInfo string
for i, k := range kList {
v := vList[i]
//handle base info
re := getCheckBaseInfoRegexp()
if m := re.Match([]byte(k)); m {
baseInfo = v
continue
}
// handle resource
re = getCheckResourceRegexp()
if m := re.Match([]byte(k)); m {
skList = append(skList, k)
svList = append(svList, v)
continue
}
// handle method
re = getExtractMethodRegexp()
if m := re.Match([]byte(k)); m {
mkList = append(mkList, k)
mvList = append(mvList, v)
continue
}
}
lock.Lock()
defer lock.Unlock()
tmpApiConf := &fc.APIConfig{}
if err := initBaseInfoFromString(tmpApiConf, baseInfo); err != nil {
logger.Errorf("initBaseInfoFromString error %s", err)
return err
}
if err := initAPIConfigServiceFromKvList(tmpApiConf, skList, svList); err != nil {
logger.Errorf("initAPIConfigServiceFromKvList error %s", err)
return err
}
if err := initAPIConfigMethodFromKvList(tmpApiConf, mkList, mvList); err != nil {
logger.Errorf("initAPIConfigMethodFromKvList error %s", err)
return err
}
apiConfig = tmpApiConf
return nil
}