You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: request.go
    path of file: ./repos/go-micro/util/kubernetes/api
    
    the code of the file until where you have to start completion: package api

import (
	"bytes"
	"context"
	"encoding/json"
	"errors"
	"fmt"
	"io"
	"net/http"
	"net/url"

	"go-micro.dev/v4/logger"
)

// Request is used to construct a http request for the k8s API.
type Request struct {
	// the request context
	context context.Context
	body    io.Reader

	err          error
	client       *http.Client
	header       http.Header
	params       url.Values
	resourceName *string
	subResource  *string
	me
    
func (r *Request) Params(p *Params) *Request {
	for k, v := range p.LabelSelector {
		// create new key=value pair
		value := fmt.Sprintf("%s=%s", k, v)
		// check if there's an existing value
		if label := r.params.Get("labelSelector"); len(label) > 0 {
			value = fmt.Sprintf("%s,%s", label, value)
		}
		// set and overwrite the value
		r.params.Set("labelSelector", value)
	}
	for k, v := range p.Additional {
		r.params.Set(k, v)
	}

	return r
}