Contributions
importing struct with x-go-type generates invalid client code
i'm trying to extract a model from our swagger document & consume it from an external source, bcz we want the the type to be generated by DB access layer. when doing so i've hit 2 issues: 1. the API's which use the imported types changed the so they take a value rather than a pointer. this implies most of the called API's which forces a huge change to the code base. 2. some API's which take a type T imported using the x-go-type now generate invalid code for the client. these consume the imported type within the API body consider importing a type like this: ``` Hotspot: x-go-type: import: package: fbc/xwf/swagger/gen/ents type: Hotspot x-nullable: true ``` and then declare an API like this ``` post: tags: - hotspot summary: Create a Hotspot operationId: "CreateHotspot" consumes: - application/json produces: - application/json parameters: - in: body name: Hotspot required: false schema: $ref: '#/definitions/Hotspot' responses: 201: description: Hotspot created. schema: $ref: '#/definitions/Hotspot' 400: description: Bad request. schema: $ref: '#/definitions/Error' 422: description: Unprocessable entity schema: $ref: '#/definitions/Error' 500: description: Unexpected error. schema: $ref: '#/definitions/Error' ``` the faulty generated code looks like this: ``` func (o *CreateHotspotParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { if err := r.SetTimeout(o.timeout); err != nil { return err } var res []error if o.Hotspot != nil {<<<<<<<<<<<<<<<This fails to compile bcz its NOT a pointer !!! if err := r.SetBodyParam(o.Hotspot); err != nil { return err } } if len(res) > 0 { return errors.CompositeValidationError(res...) } return nil } ``` any idea how to fix this ? Thanks Eitan1.4KViews0likes1Comment