func (h *httpApplicator) GetMatches(selector labels.Selector, labelType Type) ([]Labeled, error) { params := url.Values{} params.Add("selector", selector.String()) params.Add("type", labelType.String()) // Make value copy of URL; don't want to mutate the URL in the struct. urlToGet := *h.matchesEndpoint urlToGet.RawQuery = params.Encode() resp, err := h.client.Get(urlToGet.String()) if err != nil { return []Labeled{}, err } defer resp.Body.Close() matches := []string{} decoder := json.NewDecoder(resp.Body) err = decoder.Decode(&matches) if err != nil { return []Labeled{}, err } labeled := make([]Labeled, len(matches)) for i, s := range matches { labeled[i] = Labeled{ ID: s, LabelType: labelType, Labels: labels.Set{}, } } return labeled, nil }