OpenAPITools / OpenAPITools/openapi-generator

Unwanted "result" Value in @RequestMapping `produces` Attribute Generated by OpenAPI Generator

Open
#20,783 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
26.8k
Forks
7.7k
PR merge metrics
PR metrics pending

Description

I'm using the OpenAPI Generator plugin for server stub generation based on a Swagger 2.0 specification. I’ve encountered an issue where the generated code contains an unwanted "result" value in the produces attribute of the @RequestMapping annotation in the Spring Boot server stub.

Issue:

In the generated code, I have the following @RequestMapping annotation:

@RequestMapping(
    method = RequestMethod.POST,
    value = "/users", 
    produces = { "application/json", "result" },
    consumes = { "application/json" }
)

As you can see, the produces attribute includes "result" as a media type, which should not be there. The produces attribute is intended to specify valid media types (like "application/json", "application/xml", etc.), but "result" seems to have been mistakenly added.

Example Swagger Spec (relevant part):
responses:
  200:
    description: Successful response
    schema:
      type: object
      properties:
        result:
          type: object
          properties:
            someData:
              type: string
What I've Tried:
  1. Reviewed the Swagger Spec: I've checked my Swagger 2.0 spec, and there's no reason for "result" to be in the produces field. The spec only defines response data, not media types like "result".
  2. Checked the Generated Code: The produces field in the generated @RequestMapping annotation is incorrectly including "result".
  3. Looked at the OpenAPI Generator Templates: I haven’t customized the templates yet, but I’m wondering if this might be necessary.
My Question:
  • Why is OpenAPI Generator adding "result" as a value in the produces attribute of the @RequestMapping annotation? Could it be related to the way the response body is defined in the Swagger 2.0 spec?
  • How can I fix this issue so that only the correct media types (like "application/json") appear in the produces field, and "result" is not added?
  • Should I customize the OpenAPI Generator templates to prevent this from happening, and if so, how would I do that?

Any guidance or solutions would be greatly appreciated!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file, generator version, command, or test is named. Start by reproducing the Spring Boot server stub from the minimal Swagger 2.0 response shown, then inspect the Spring server templates and response media-type calculation. Done means the generated @RequestMapping contains only declared media types and a regression test covers the result property case.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, spring-boot
Domain
api, backend, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.