OpenApi Generator version 7.1.0 | OpenApi Spec 3.0.3
REQUIREMENT 1: Generate Go structs from Open API Spec parameters components with correct field tags:
I want generated code to look like this:
type Request struct {
PersonId
OrgId
}
type PersonId struct {
PersonId string `uri:"id" binding:"required"`
}
type OrgId struct {
OrgId string `form:"orgId" binding:"required"`
}
The struct fields are required so we use gins validation like so:
func (ctrl Controller) GetPersonById(ctx *gin.Context) {
var req generated.Request
iderr := ctx.ShouldBindUri(&req.PersonId)
orgerr := ctx.ShouldBindQuery(&req.OrgId)
if orgerr != nil || iderr != nil {
ctx.JSON(ctrl.Make400(ctx, errors.New("Parameters are required")))
return
}
//etc ...
}
PROBLEM: Using the go-gin-server generator my parameters components do not get generated. I cannot find configuration to do this. I have found an issue regarding it for java generator: https://github.com/OpenAPITools/openapi-generator/pull/10934
Below is the current command
openapi-generator generate \
--input-spec api-spec.yml \
--generator-name go-gin-server \
--output generated
.
.
.
REQUIREMENT 2: If no solution for requirement 1, can I remove json field tags from generation on schemas components?
PROBLEM 2: A workaround to use schema component contains json field tags. This then fails the Gin validation:
type Request struct {
Person `json:"person"
Org `json:"org"
}
type PersonId struct {
PersonId string `json:"id" binding:"required"`
}
type OrgId struct {
OrgId string `json:"orgId" binding:"required"`
}