Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Object schema generated for Unit Kotlin type #2798

Closed
orange-buffalo opened this issue Nov 30, 2024 · 1 comment
Closed

Object schema generated for Unit Kotlin type #2798

orange-buffalo opened this issue Nov 30, 2024 · 1 comment

Comments

@orange-buffalo
Copy link

Describe the bug

With upgrade from 2.6.0 to 2.7.0 we experience unexpected changes to generated schema - Unit Kotlin return type appears in the schema.

To Reproduce

Consider Spring REST Controller method like this:

    @PostMapping("{token}/activate")
    @ResponseStatus(HttpStatus.NO_CONTENT)
    suspend fun activateUser(
        @PathVariable token: String,
        @RequestBody @Valid request: UserActivationRequestDto
    ) {
 ...

In 2.6.0, the schema was generated correctly, in our opinion:

  /api/user-activation-tokens/{token}/activate:
    post:
      ...
      responses:
        "204":
          description: No Content

In 2.7.0, however, the extra type is generated:

  /api/user-activation-tokens/{token}/activate:
    post:
     ...
      responses:
        "204":
          description: No Content
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Unit"
...
components:
  schemas:
    Unit:
      type: object

Additional context
As a side note, we are using OpenApiGenerator to generate TypeScript client from the OpenAPI schema, and now the client code has method return types object instead of previous void.

@dineshkj13
Copy link

Yes this could break the client in other languages too, client would expect null response but now it expects {} which is not there in the response

ndwlocatieservices added a commit to ndwnu/nls-accessibility-map that referenced this issue Jan 14, 2025
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [nu.ndw.nls.locationdataissuesapi:client-feign](https://dev.azure.com/ndwnu/NLS/_git/nls-location-data-issues) ([source](https://dev.azure.com/ndwnu/NLS/_git/nls-location-data-issues)) | compile | patch | `1.0.17` -> `1.0.18` |
| [org.springdoc:springdoc-openapi-starter-webmvc-ui](https://springdoc.org/) ([source](https://github.com/springdoc/springdoc-openapi)) | compile | minor | `2.7.0` -> `2.8.0` |

---

### Release Notes

<details>
<summary>springdoc/springdoc-openapi (org.springdoc:springdoc-openapi-starter-webmvc-ui)</summary>

### [`v2.8.0`](https://github.com/springdoc/springdoc-openapi/blob/HEAD/CHANGELOG.md#280---2025-01-03)

[Compare Source](springdoc/springdoc-openapi@v2.7.0...v2.8.0)

##### Added

-   [#&#8203;2790](springdoc/springdoc-openapi#2790) - Moving to OpenAPI 3.1 as the default implementation for springdoc-openapi
-   [#&#8203;2817](springdoc/springdoc-openapi#2817) - Obey annotations when flattening ParameterObject fields
-   [#&#8203;2826](springdoc/springdoc-openapi#2826) - Make it possible to mark parameters with [@&#8203;RequestParam](https://github.com/RequestParam) annotation to be sent in form instead of query.
-   [#&#8203;2822](springdoc/springdoc-openapi#2822) - Support returning null in ParameterCustomizer
-   [#&#8203;2830](springdoc/springdoc-openapi#2830) - Add support for deprecated fields.
-   [#&#8203;2780](springdoc/springdoc-openapi#2780) - Add Security Schema by AutoConfigure

##### Changed

-   Upgrade spring-boot to 3.4.1
-   Upgrade spring-cloud-function to 4.2.0
-   Upgrade swagger-core to 2.2.27

##### Fixed

-   [#&#8203;2804](springdoc/springdoc-openapi#2804) - Stable release 2.7.0 depends on Spring Cloud Milestone 4.2.0-M1
-   [#&#8203;2828](springdoc/springdoc-openapi#2828) - Required a bean of type 'org.springframework.data.rest.webmvc.mapping.Associations' that could not be found.
-   [#&#8203;2823](springdoc/springdoc-openapi#2823) - Capturing pattern in identical paths only renders the path element of one method
-   [#&#8203;2817](springdoc/springdoc-openapi#2817) - Automatically add required if a field is [@&#8203;notNull](https://github.com/notNull) or [@&#8203;NotBlank](https://github.com/NotBlank).
-   [#&#8203;2814](springdoc/springdoc-openapi#2814) - An unresolvable circular reference with management.endpoint.gateway.enabled=true.
-   [#&#8203;2798](springdoc/springdoc-openapi#2798) - Object schema generated for Unit Kotlin type.
-   [#&#8203;2797](springdoc/springdoc-openapi#2797) - Removing operationId via customizer does not w...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants