in commands/api.go [106:129]
func getPathParameterNames(path string) ([]string, error) {
var pathParameters []string
regexObj, err := regexp.Compile(pathSegmentParamRegex)
if err != nil {
whisk.Debug(whisk.DbgError, "Failed to match path '%s' to regular expressions `%s`\n", path, pathSegmentParamRegex)
} else {
segments := strings.Split(path, "/")
for _, segment := range segments {
segment = fmt.Sprintf("/%s/", segment)
matchedItems := regexObj.FindAllStringSubmatch(segment, -1)
for _, matchedParam := range matchedItems {
for idx, paramName := range matchedParam {
whisk.Debug(whisk.DbgInfo, "Path parameter submatch '%v'; idx %v\n", paramName, idx)
if idx > 0 && len(paramName) > 0 {
pathParameters = append(pathParameters, paramName)
}
}
}
}
}
return pathParameters, err
}