func parseMiddlewares(itemConfig *config.Config) (MiddlewaresSetting, error) { items, err := itemConfig.List("") if err != nil { return nil, err } middlewares := MiddlewaresSetting{} for i := 0; i < len(items); i++ { var name string { item, err := itemConfig.Map(fmt.Sprintf("%d", i)) if err != nil { continue } // get name for k, _ := range item { name = k } } ms, err := itemConfig.List(fmt.Sprintf("%d.%s", i, name)) if err != nil { return nil, err } middlewares[name] = MiddlewareSetting{} for j := 0; j < len(ms); j++ { m, err := itemConfig.String(fmt.Sprintf("%d.%s.%d", i, name, j)) if err != nil { return nil, err } middlewares[name] = append(middlewares[name], m) } } return middlewares, nil }