// CanonicalParams returns the list of parameter names needed to build the canonical href to the // resource. It returns nil if the resource does not have a canonical action. func CanonicalParams(r *design.ResourceDefinition) []string { var params []string if ca := r.CanonicalAction(); ca != nil { if len(ca.Routes) > 0 { params = ca.Routes[0].Params() } for i, p := range params { params[i] = Goify(p, false) } } return params }