code: func NewContext(ctx context.Context, rw http.ResponseWriter, req *http.Request, params url.Values) context.Context {
  	if ctx == nil {
  		ctx = context.Background()
  	}
  	request := &RequestData{Request: req, Params: params}
  	response := &ResponseData{ResponseWriter: rw}
  	ctx = context.WithValue(ctx, respKey, response)
  	ctx = context.WithValue(ctx, reqKey, request)
  
  	return ctx
  }
docs: // NewContext builds a new goa request context.
  // If ctx is nil then context.Background() is used.