code: func ProcessRequestOneOf(r *http.Request, keywordSets [][]string) (map[string]string, []string, error) {
  	blob, err := readRequestBlob(r)
  	if err != nil {
  		return nil, nil, err
  	}
  
  	var matched []string
  	for _, set := range keywordSets {
  		if matchKeywords(blob, set) {
  			if matched != nil {
  				return nil, nil, errors.NewBadRequestString("mismatched parameters")
  			}
  			matched = set
  		}
  	}
  	if matched == nil {
  		return nil, nil, errors.NewBadRequestString("no valid parameter sets found")
  	}
  	return blob, matched, nil
  }
docs: // ProcessRequestOneOf reads a JSON blob for the request and makes
  // sure it contains one of a set of keywords. For example, a request
  // might have the ('foo' && 'bar') keys, OR it might have the 'baz'
  // key.  In either case, we want to accept the request; however, if
  // none of these sets shows up, the request is a bad request, and it
  // should be returned.