...

Source file src/github.com/go-openapi/validate/options.go

Documentation: github.com/go-openapi/validate

     1  // Copyright 2015 go-swagger maintainers
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //    http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  package validate
    16  
    17  import "sync"
    18  
    19  // Opts specifies validation options for a SpecValidator.
    20  //
    21  // NOTE: other options might be needed, for example a go-swagger specific mode.
    22  type Opts struct {
    23  	ContinueOnErrors bool // true: continue reporting errors, even if spec is invalid
    24  
    25  	// StrictPathParamUniqueness enables a strict validation of paths that include
    26  	// path parameters. When true, it will enforce that for each method, the path
    27  	// is unique, regardless of path parameters such that GET:/petstore/{id} and
    28  	// GET:/petstore/{pet} anre considered duplicate paths.
    29  	//
    30  	// Consider disabling if path parameters can include slashes such as
    31  	// GET:/v1/{shelve} and GET:/v1/{book}, where the IDs are "shelve/*" and
    32  	// /"shelve/*/book/*" respectively.
    33  	StrictPathParamUniqueness bool
    34  	SkipSchemataResult        bool
    35  }
    36  
    37  var (
    38  	defaultOpts = Opts{
    39  		// default is to stop validation on errors
    40  		ContinueOnErrors: false,
    41  
    42  		// StrictPathParamUniqueness is defaulted to true. This maintains existing
    43  		// behavior.
    44  		StrictPathParamUniqueness: true,
    45  	}
    46  
    47  	defaultOptsMutex = &sync.Mutex{}
    48  )
    49  
    50  // SetContinueOnErrors sets global default behavior regarding spec validation errors reporting.
    51  //
    52  // For extended error reporting, you most likely want to set it to true.
    53  // For faster validation, it's better to give up early when a spec is detected as invalid: set it to false (this is the default).
    54  //
    55  // Setting this mode does NOT affect the validation status.
    56  //
    57  // NOTE: this method affects global defaults. It is not suitable for a concurrent usage.
    58  func SetContinueOnErrors(c bool) {
    59  	defer defaultOptsMutex.Unlock()
    60  	defaultOptsMutex.Lock()
    61  	defaultOpts.ContinueOnErrors = c
    62  }
    63  

View as plain text