@@ -58,6 +58,8 @@ func ConvertToOpenAPI(api *API) (*openapi.OpenAPI, error) {
5858 Ref : schemaRef ,
5959 }
6060 singular := r .Singular
61+ // Convert kebab-case singular to snake_case for path variables
62+ singularSnake := cases .KebabToSnakeCase (singular )
6163 // declare some commonly used objects, to be used later.
6264 bodyParam := openapi.RequestBody {
6365 Required : true ,
@@ -69,7 +71,7 @@ func ConvertToOpenAPI(api *API) (*openapi.OpenAPI, error) {
6971 }
7072 idParam := openapi.Parameter {
7173 In : "path" ,
72- Name : singular + "_id" ,
74+ Name : singularSnake + "_id" ,
7375 Required : true ,
7476 Schema : & openapi.Schema {
7577 Type : "string" ,
@@ -84,7 +86,7 @@ func ConvertToOpenAPI(api *API) (*openapi.OpenAPI, error) {
8486 },
8587 }
8688 for _ , pwp := range * parentPWPS {
87- resourcePath := fmt .Sprintf ("%s%s/{%s_id}" , pwp .Pattern , collection , singular )
89+ resourcePath := fmt .Sprintf ("%s%s/{%s_id}" , pwp .Pattern , collection , singularSnake )
8890 patterns = append (patterns , resourcePath [1 :])
8991 if r .Methods .List != nil {
9092 listPath := fmt .Sprintf ("%s%s" , pwp .Pattern , collection )
@@ -145,7 +147,7 @@ func ConvertToOpenAPI(api *API) (*openapi.OpenAPI, error) {
145147 })
146148 }
147149 methodInfo := openapi.Operation {
148- OperationID : fmt .Sprintf ("List%s" , cases .SnakeToPascalCase (r . Singular )),
150+ OperationID : fmt .Sprintf ("List%s" , cases .SnakeToPascalCase (singularSnake )),
149151 Description : fmt .Sprintf ("List method for %s" , r .Singular ),
150152 Parameters : params ,
151153 Responses : map [string ]openapi.Response {
@@ -178,7 +180,7 @@ func ConvertToOpenAPI(api *API) (*openapi.OpenAPI, error) {
178180 })
179181 }
180182 methodInfo := openapi.Operation {
181- OperationID : fmt .Sprintf ("Create%s" , cases .SnakeToPascalCase (r . Singular )),
183+ OperationID : fmt .Sprintf ("Create%s" , cases .SnakeToPascalCase (singularSnake )),
182184 Description : fmt .Sprintf ("Create method for %s" , r .Singular ),
183185 Parameters : params ,
184186 RequestBody : & bodyParam ,
@@ -209,7 +211,7 @@ func ConvertToOpenAPI(api *API) (*openapi.OpenAPI, error) {
209211 }
210212 if r .Methods .Get != nil {
211213 methodInfo := openapi.Operation {
212- OperationID : fmt .Sprintf ("Get%s" , cases .SnakeToPascalCase (r . Singular )),
214+ OperationID : fmt .Sprintf ("Get%s" , cases .SnakeToPascalCase (singularSnake )),
213215 Description : fmt .Sprintf ("Get method for %s" , r .Singular ),
214216 Parameters : append (pwp .Params , idParam ),
215217 Responses : map [string ]openapi.Response {
@@ -220,7 +222,7 @@ func ConvertToOpenAPI(api *API) (*openapi.OpenAPI, error) {
220222 }
221223 if r .Methods .Update != nil {
222224 methodInfo := openapi.Operation {
223- OperationID : fmt .Sprintf ("Update%s" , cases .SnakeToPascalCase (r . Singular )),
225+ OperationID : fmt .Sprintf ("Update%s" , cases .SnakeToPascalCase (singularSnake )),
224226 Description : fmt .Sprintf ("Update method for %s" , r .Singular ),
225227 Parameters : append (pwp .Params , idParam ),
226228 RequestBody : & openapi.RequestBody {
@@ -281,7 +283,7 @@ func ConvertToOpenAPI(api *API) (*openapi.OpenAPI, error) {
281283 })
282284 }
283285 methodInfo := openapi.Operation {
284- OperationID : fmt .Sprintf ("Delete%s" , cases .SnakeToPascalCase (r . Singular )),
286+ OperationID : fmt .Sprintf ("Delete%s" , cases .SnakeToPascalCase (singularSnake )),
285287 Description : fmt .Sprintf ("Delete method for %s" , r .Singular ),
286288 Parameters : params ,
287289 Responses : map [string ]openapi.Response {
@@ -318,7 +320,7 @@ func ConvertToOpenAPI(api *API) (*openapi.OpenAPI, error) {
318320 }
319321 if r .Methods .Apply != nil {
320322 methodInfo := openapi.Operation {
321- OperationID : fmt .Sprintf ("Apply%s" , cases .SnakeToPascalCase (r . Singular )),
323+ OperationID : fmt .Sprintf ("Apply%s" , cases .SnakeToPascalCase (singularSnake )),
322324 Description : fmt .Sprintf ("Apply method for %s" , r .Singular ),
323325 Parameters : append (pwp .Params , idParam ),
324326 RequestBody : & bodyParam ,
@@ -368,7 +370,7 @@ func ConvertToOpenAPI(api *API) (*openapi.OpenAPI, error) {
368370 }
369371 cmPath := fmt .Sprintf ("%s:%s" , resourcePath , custom .Name )
370372 methodInfo := openapi.Operation {
371- OperationID : fmt .Sprintf (":%s%s" , cases .SnakeToPascalCase (custom .Name ), cases .SnakeToPascalCase (r . Singular )),
373+ OperationID : fmt .Sprintf (":%s%s" , cases .SnakeToPascalCase (custom .Name ), cases .SnakeToPascalCase (singularSnake )),
372374 Description : fmt .Sprintf ("Custom method %s for %s" , custom .Name , r .Singular ),
373375 Parameters : append (pwp .Params , idParam ),
374376 Responses : map [string ]openapi.Response {
@@ -515,10 +517,12 @@ func generateParentPatternsWithParams(r *Resource) (string, *[]PathWithParams) {
515517 pwps := []PathWithParams {}
516518 for _ , parent := range r .ParentResources () {
517519 singular := parent .Singular
518- basePattern := fmt .Sprintf ("/%s/{%s_id}" , CollectionName (parent ), singular )
520+ // Convert kebab-case singular to snake_case for path variables
521+ singularSnake := cases .KebabToSnakeCase (singular )
522+ basePattern := fmt .Sprintf ("/%s/{%s_id}" , CollectionName (parent ), singularSnake )
519523 baseParam := openapi.Parameter {
520524 In : "path" ,
521- Name : singular ,
525+ Name : singularSnake ,
522526 Required : true ,
523527 Schema : & openapi.Schema {
524528 Type : "string" ,
0 commit comments