Skip to content

[GOLANG] Bug. Client codegen Post Body #5442

Open
@stephenrlouie

Description

@stephenrlouie
Description

The issue here revolves around golang client generated code and having an untyped json expected in the body. The codegen will set the varLocalPostBody = &body, and body interface{}, so internally we will pass around the memory address of body instead of its contents. This causes client error: Unsupported 'Body' type/value when I attempt to pass a struct into the POST endpoint defined.

Swagger-codegen version

2.2.0. I'm calling via this jimschubert container

Swagger declaration file content or url
post:
      description: submitting a new JSON
      operationId: postJSON
      parameters:
        - in: body
          name: body
          description: JSON
          required: true
          schema:
            type: object
      responses:
        200:
          description: received Raw JSON
Command line used for generation

where the v1.yaml is my swagger spec

clientconfig.json is

{
  "packageName": "apiclient",
  "packageVersion": "1.0"
}
docker run -it -v $(pwd):/swag \
	          jimschubert/swagger-codegen-cli generate \
	          -i /swag/v1.yaml \
	          -l go \
	          -o /swag/out/api/client \
	          -c /swag/clientconfig.json
Steps to reproduce
  1. Specify a POST endpoint that takes untyped JSON
  2. Codegen
  3. Call the default_api.go function for that post. It should take interface{}
  4. See the client error: Unsupported 'Body' type/value

*I've also see the &body code if I specify a type integer

Related issues
Suggest a Fix

Pass around the actual contents of the interface {}

s/&body/body

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions