Documentation
Index ¶
- Constants
- func BuildApiUrlOAS(specServerURL, overrideServerURL, specPath string) string
- func Copy(spec *oas3.Swagger) (*oas3.Swagger, error)
- func CopySchemaStandard(schema oas3.Schema) (oas3.Schema, error)
- func GetExtensionPropString(xprops oas3.ExtensionProps, key string) (string, error)
- func GetExtensionPropStringOrEmpty(xprops oas3.ExtensionProps, key string) string
- func GetOperationExtensionPropStringOrEmpty(op oas3.Operation, key string) string
- func Merge(specMaster, specExtra *oas3.Swagger, specExtraNote string, ...) (*oas3.Swagger, error)
- func MergeDirectory(dir string, mergeOpts *MergeOptions) (*oas3.Swagger, int, error)
- func MergeFiles(filepaths []string, mergeOpts *MergeOptions) (*oas3.Swagger, error)
- func MergeParameters(specMaster, specExtra *oas3.Swagger, specExtraNote string, ...) (*oas3.Swagger, error)
- func MergePaths(specMaster, specExtra *oas3.Swagger) (*oas3.Swagger, error)
- func MergeRequestBodies(specMaster, specExtra *oas3.Swagger, specExtraNote string) (*oas3.Swagger, error)
- func MergeResponses(specMaster, specExtra *oas3.Swagger, specExtraNote string, ...) (*oas3.Swagger, error)
- func MergeSchemas(specMaster, specExtra *oas3.Swagger, specExtraNote string, ...) (*oas3.Swagger, error)
- func MergeTags(specMaster, specExtra *oas3.Swagger) *oas3.Swagger
- func MergeWithTables(spec1, spec2 *oas3.Swagger, specExtraNote string, mergeOpts *MergeOptions) (*oas3.Swagger, []*table.Table, error)
- func NewSpec(oasVersion, apiTitle, apiVersion string) *oas3.Swagger
- func OpTableColumnsDefault() []text.Text
- func OpTableColumnsRingCentral() *text.TextSet
- func OperationRequestMediaTypes(op *oas3.Operation) []string
- func OperationResponseMediaTypes(op *oas3.Operation) []string
- func OperationSetRequestBodySchemaRef(op *oas3.Operation, mediaType string, schemaRef *oas3.SchemaRef)
- func OperationSetResponseBodySchemaRef(op *oas3.Operation, status, description, mediaType string, ...) error
- func ReadAndValidateFile(oas3file string) (*oas3.Swagger, error)
- func ReadFile(oas3file string, validate bool) (*oas3.Swagger, error)
- func SchemaPathExpand(schemaName string) string
- func TagsWithoutGroups(spec *oas3.Swagger, tagGroupSet TagGroupSet) []string
- func VisitOperations(spec *oas3.Swagger, visitOp func(path, method string, op *oas3.Operation))
- func WriteFileDirMerge(outfile, inputDir string, perm os.FileMode, mergeOpts *MergeOptions) (int, error)
- type CollisionCheckResult
- type ExtensionPropsParent
- type MergeOptions
- type OperationMeta
- type SpecMeta
- type SpecMetas
- type SpecMore
- func (sm *SpecMore) ComponentRequestBody(componentPath string) *oas3.RequestBodyRef
- func (sm *SpecMore) ExtensionNames() map[string]int
- func (sm *SpecMore) HasComponentSchema(componentSchemaName string, lowerCaseMatch bool) bool
- func (sm *SpecMore) MarshalJSON(prefix, indent string) ([]byte, error)
- func (sm *SpecMore) OperationByID(wantOperationID string) (path, method string, op *oas3.Operation, err error)
- func (sm *SpecMore) OperationMetas() []OperationMeta
- func (sm *SpecMore) OperationParametersDescriptionStatus() maputil.MapStringMapStringInt
- func (sm *SpecMore) OperationParametersDescriptionStatusCounts() (with, without, all int)
- func (sm *SpecMore) OperationParametersWithoutDescriptionsWriteFile(filename string) error
- func (sm *SpecMore) OperationsCount() int
- func (sm *SpecMore) OperationsIDs() []string
- func (sm *SpecMore) OperationsTable(columns *text.TextSet) (*table.Table, error)
- func (sm *SpecMore) PrintJSON(prefix, indent string) error
- func (sm *SpecMore) SchemaNameExists(schemaName string, includeNil bool) bool
- func (sm *SpecMore) SchemaNames() []string
- func (sm *SpecMore) SchemaPropertiesDescriptionStatus() maputil.MapStringMapStringInt
- func (sm *SpecMore) SchemaPropertiesDescriptionStatusCounts() (with, without, all int)
- func (sm *SpecMore) SchemaPropertiesWithoutDescriptionsWriteFile(filename string) error
- func (sm *SpecMore) SchemaRef(schemaName string) *oas3.SchemaRef
- func (sm *SpecMore) SchemasCount() int
- func (sm *SpecMore) ServerURL(index uint) string
- func (sm *SpecMore) ServerURLBasePath(index uint) (string, error)
- func (sm *SpecMore) SetOperation(path, method string, op *oas3.Operation)
- func (sm *SpecMore) SetSchemaRef(schemaName string, schemaRef *oas3.SchemaRef) error
- func (sm *SpecMore) Stats() SpecStats
- func (sm *SpecMore) TagGroups() (TagGroupSet, error)
- func (sm *SpecMore) Tags(inclTop, inclOps bool) []string
- func (sm *SpecMore) TagsMap(inclTop, inclOps bool) map[string]int
- func (sm *SpecMore) WriteFileJSON(filename string, perm os.FileMode, prefix, indent string) error
- func (sm *SpecMore) WriteFileXLSX(filename string) error
- type SpecStats
- type TagGroup
- type TagGroupSet
- type TagsMore
- type ValidationStatus
Constants ¶
const ( DescStatusIsEmpty = 0 DescStatusIsNotEmpty = 1 DescStatusDefaultSep = " ~~~ " )
const (
OASVersionLatest = "3.0.3"
)
const XTagGroupsPropertyName = "x-tag-groups"
Variables ¶
Functions ¶
func BuildApiUrlOAS ¶
func GetExtensionPropString ¶
func GetExtensionPropString(xprops oas3.ExtensionProps, key string) (string, error)
GetExtensionPropString converts extension prop value from `json.RawMessage` to `string`.
func GetExtensionPropStringOrEmpty ¶
func GetExtensionPropStringOrEmpty(xprops oas3.ExtensionProps, key string) string
GetExtensionPropStringOrEmpty converts extension prop value from `json.RawMessage` to `string`.
func GetOperationExtensionPropStringOrEmpty ¶
GetOperationExtensionPropStringOrEmpty converts extension prop value from `json.RawMessage` to `string`.
func MergeDirectory ¶
func MergeFiles ¶
func MergeFiles(filepaths []string, mergeOpts *MergeOptions) (*oas3.Swagger, error)
func MergeParameters ¶
func MergeRequestBodies ¶
func MergeResponses ¶
func MergeSchemas ¶
func MergeWithTables ¶
func MergeWithTables(spec1, spec2 *oas3.Swagger, specExtraNote string, mergeOpts *MergeOptions) (*oas3.Swagger, []*table.Table, error)
MergeWithTables performs a spec merge and returns comparison tables. This is useful to combine with github.com/grokify/gocharts/data/table WriteXLSX() to write out comparison tables for debugging.
func NewSpec ¶
NewSpec returns a new OpenAPI 3 spec that will validate. Specifically, it includes an OAS version, sets `info` to be an empty object instead of null and sets apiVersion.
func OpTableColumnsDefault ¶
func OperationRequestMediaTypes ¶
func MediaTypesToSlice(typesMap map[string]*oas3.MediaType) []string {
slice := []string{} for thisType := range typesMap { slice = append(slides, thisType) } return slice
}
OperationRequestMediaTypes returns a sorted slice of request media types.
func OperationResponseMediaTypes ¶
OperationResponseMediaTypes returns a sorted slice of response media types.
func ReadFile ¶
ReadFile does optional validation which is useful when merging incomplete spec files.
func SchemaPathExpand ¶
func TagsWithoutGroups ¶
func TagsWithoutGroups(spec *oas3.Swagger, tagGroupSet TagGroupSet) []string
func VisitOperations ¶
func WriteFileDirMerge ¶
Types ¶
type CollisionCheckResult ¶
type CollisionCheckResult int
const ( CollisionCheckSame CollisionCheckResult = iota CollisionCheckOverwrite CollisionCheckError CollisionCheckSkip )
func SchemaCheckCollisionDefault ¶
func SchemaCheckCollisionDefault(schemaName string, item1, item2 interface{}, item2Note string) CollisionCheckResult
func SchemaCheckCollisionSkip ¶
func SchemaCheckCollisionSkip(schemaName string, item1, item2 interface{}, item2Note string) CollisionCheckResult
type ExtensionPropsParent ¶
type ExtensionPropsParent interface{}
type MergeOptions ¶
type MergeOptions struct { FileRx *regexp.Regexp SchemaFunc func(schemaName string, sch1, sch2 interface{}, hint2 string) CollisionCheckResult CollisionCheckResult CollisionCheckResult ValidateEach bool ValidateFinal bool }
func NewMergeOptionsSkip ¶
func NewMergeOptionsSkip() *MergeOptions
func (*MergeOptions) CheckSchemaCollision ¶
func (mo *MergeOptions) CheckSchemaCollision(schemaName string, sch1, sch2 interface{}, hint2 string) CollisionCheckResult
type OperationMeta ¶
type OperationMeta struct { OperationID string Summary string Method string Path string Tags []string MetaNotes []string }
func OperationToMeta ¶
func OperationToMeta(url, method string, op *oas3.Operation) OperationMeta
type SpecMore ¶
func MergeSpecMetas ¶
func MergeSpecMetas(metas *SpecMetas, validatesOnly bool, mergeOpts *MergeOptions) (SpecMore, error)
func (*SpecMore) ComponentRequestBody ¶
func (sm *SpecMore) ComponentRequestBody(componentPath string) *oas3.RequestBodyRef
func (*SpecMore) ExtensionNames ¶
ExtensionNames is not complete yet.
func (*SpecMore) HasComponentSchema ¶
func (*SpecMore) MarshalJSON ¶
func (*SpecMore) OperationByID ¶
func (*SpecMore) OperationMetas ¶
func (sm *SpecMore) OperationMetas() []OperationMeta
func (*SpecMore) OperationParametersDescriptionStatus ¶
func (sm *SpecMore) OperationParametersDescriptionStatus() maputil.MapStringMapStringInt
OperationParametersDescriptionStatus returns a set of operationIds and parameters with description status where `1` indicates a description and `0` indicates no descriptions. Descriptions for references aren't processed so they aren't analyzed and reported on. This returns a `MapStringMapStringInt` where the first key is the operationIds and the second key is the parameter name.
func (*SpecMore) OperationParametersDescriptionStatusCounts ¶
OperationParametersDescriptionStatusCounts returns operation parameter counts with descriptions, without descriptions, and total counts.
func (*SpecMore) OperationParametersWithoutDescriptionsWriteFile ¶
func (*SpecMore) OperationsCount ¶
func (*SpecMore) OperationsIDs ¶
func (*SpecMore) OperationsTable ¶
func (*SpecMore) SchemaNameExists ¶
func (*SpecMore) SchemaNames ¶
func (*SpecMore) SchemaPropertiesDescriptionStatus ¶
func (sm *SpecMore) SchemaPropertiesDescriptionStatus() maputil.MapStringMapStringInt
SchemaPropertiesDescriptionStatus returns a set of schema names and properties with description status where `1` indicates a description and `0` indicates no descriptions. Descriptions for references aren't processed so they aren't analyzed and reported on. This returns a `MapStringMapStringInt` where the first key is the component name and the second key is the property name.
func (*SpecMore) SchemaPropertiesDescriptionStatusCounts ¶
SchemaPropertiesDescriptionStatusCounts returns schema property counts with descriptions, without descriptions, and total counts.
func (*SpecMore) SchemaPropertiesWithoutDescriptionsWriteFile ¶
func (*SpecMore) SchemasCount ¶
func (*SpecMore) ServerURLBasePath ¶
ServerURLBasePath extracts the base path from a OAS URL which can include variables.
func (*SpecMore) SetOperation ¶
func (*SpecMore) SetSchemaRef ¶
func (*SpecMore) TagGroups ¶
func (sm *SpecMore) TagGroups() (TagGroupSet, error)
TagGroups parses a TagGroupSet from an OpenAPI3 spec.
func (*SpecMore) WriteFileJSON ¶
func (*SpecMore) WriteFileXLSX ¶
type TagGroupSet ¶
type TagGroupSet struct {
TagGroups []TagGroup
}
func NewTagGroupSet ¶
func NewTagGroupSet() TagGroupSet
func (*TagGroupSet) Exists ¶
func (set *TagGroupSet) Exists(tagName string) bool
func (*TagGroupSet) GetTagGroupNamesForTagNames ¶
func (set *TagGroupSet) GetTagGroupNamesForTagNames(wantTagNames ...string) []string
type ValidationStatus ¶
func ValidateMore ¶
func ValidateMore(spec *oas3.Swagger) (ValidationStatus, error)
Source Files
Directories
Path | Synopsis |
---|---|