apple / swift-openapi-generator

Generate Swift client and server code from an OpenAPI document.
https://swiftpackageindex.com/apple/swift-openapi-generator/documentation
Apache License 2.0
1.45k stars 121 forks source link

Fix multipart + additionalProperties + string support #597

Closed czechboy0 closed 4 months ago

czechboy0 commented 4 months ago

Motivation

Fixes #596.

The bug was computing the TypeUsage from the raw schema, before resolving it with multipart semantics.

Covers using the multipart content type with additional properties of a concrete type (string).

This lead to the generator producing half of the code that expected a HTTPBody (a streaming byte type) and another half expected a String, leading to a build failure.

Modifications

First resolve the schema, then calculate the TypeUsage from the resolved schema.

Result

The generator correctly generates this as HTTPBody everywhere now.

Test Plan

Added a unit test to cover this case.