Skip to content

[BUG] [Spring] Default interfaces do not contain response mediatypes except application/json #11731

@networkinss

Description

@networkinss

Bug Report Checklist

Sample openapi doc causing the issue.
issue_missingmediatypes.txt

Description

The default interface does not contain the mediatypes (empty) except for mediatype application/json.
I provided a yaml with mediatypes application/hal+json and text/plain to reproduce the issue.
This leads to a http status 500 if the stub is executed and api called with Postman.
Spring throws exception:
org.springframework.util.InvalidMimeTypeException: Invalid mime type "": 'mimeType' must not be empty
because the code (is)
mediaType.isCompatibleWith(MediaType.valueOf("")))
contains an empty string instead of (should)
mediaType.isCompatibleWith(MediaType.valueOf("application/hal+json")))

openapi-generator version

6.0.0

OpenAPI declaration file content or url

File uploaded as issue_missingmediatypes.txt, please rename to issue_missingmediatypes.yaml.

Generation Details

java -jar openapi-generator-cli-6.0.0.jar generate -i issue_missingmediatypes.yaml -g spring

Steps to reproduce

Generate stub for generator "spring" and execute "mvn spring-boot:run".
Request API with Postman or
curl --location --request GET 'http://localhost:8080/api/v3/books'
--header 'Accept: application/hal+json'

Related issues/PRs

None.

Suggest a fix

I made a test method to check that and provided a fix for the mustache file:
methodBody.mustache
Line 9 and 11 were changed.
I wrote a test here:
https://github.com/networkinss/openapi-generator/blob/fix_issue_11731/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java

New test method is:
doGenerateMediatypes

Fix is ready for PR, if there are no objections.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions