@@ -483,9 +483,16 @@ func FilterParameterDefinitionByType(params []ParameterDefinition, in string) []
483483}
484484
485485// OperationDefinitions returns all operations for a swagger definition.
486- func OperationDefinitions (swagger * openapi3.T ) ([]OperationDefinition , error ) {
486+ func OperationDefinitions (swagger * openapi3.T , initialismOverrides bool ) ([]OperationDefinition , error ) {
487487 var operations []OperationDefinition
488488
489+ var toCamelCaseFunc func (string ) string
490+ if initialismOverrides {
491+ toCamelCaseFunc = ToCamelCaseWithInitialism
492+ } else {
493+ toCamelCaseFunc = ToCamelCase
494+ }
495+
489496 for _ , requestPath := range SortedPathsKeys (swagger .Paths ) {
490497 pathItem := swagger .Paths [requestPath ]
491498 // These are parameters defined for all methods on a given path. They
@@ -505,13 +512,13 @@ func OperationDefinitions(swagger *openapi3.T) ([]OperationDefinition, error) {
505512 }
506513 // We rely on OperationID to generate function names, it's required
507514 if op .OperationID == "" {
508- op .OperationID , err = generateDefaultOperationID (opName , requestPath )
515+ op .OperationID , err = generateDefaultOperationID (opName , requestPath , toCamelCaseFunc )
509516 if err != nil {
510517 return nil , fmt .Errorf ("error generating default OperationID for %s/%s: %s" ,
511518 opName , requestPath , err )
512519 }
513520 } else {
514- op .OperationID = ToCamelCase (op .OperationID )
521+ op .OperationID = toCamelCaseFunc (op .OperationID )
515522 }
516523 op .OperationID = typeNamePrefix (op .OperationID ) + op .OperationID
517524
@@ -550,7 +557,7 @@ func OperationDefinitions(swagger *openapi3.T) ([]OperationDefinition, error) {
550557 HeaderParams : FilterParameterDefinitionByType (allParams , "header" ),
551558 QueryParams : FilterParameterDefinitionByType (allParams , "query" ),
552559 CookieParams : FilterParameterDefinitionByType (allParams , "cookie" ),
553- OperationId : ToCamelCase (op .OperationID ),
560+ OperationId : toCamelCaseFunc (op .OperationID ),
554561 // Replace newlines in summary.
555562 Summary : op .Summary ,
556563 Method : opName ,
@@ -588,7 +595,7 @@ func OperationDefinitions(swagger *openapi3.T) ([]OperationDefinition, error) {
588595 return operations , nil
589596}
590597
591- func generateDefaultOperationID (opName string , requestPath string ) (string , error ) {
598+ func generateDefaultOperationID (opName string , requestPath string , toCamelCaseFunc func ( string ) string ) (string , error ) {
592599 var operationId = strings .ToLower (opName )
593600
594601 if opName == "" {
@@ -605,7 +612,7 @@ func generateDefaultOperationID(opName string, requestPath string) (string, erro
605612 }
606613 }
607614
608- return ToCamelCase (operationId ), nil
615+ return toCamelCaseFunc (operationId ), nil
609616}
610617
611618// GenerateBodyDefinitions turns the Swagger body definitions into a list of our body
0 commit comments