OpenAPITools / OpenAPITools/openapi-generator
[BUG] Kotlin multiplatform file upload incorrect
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 26.8k
- Forks
- 7.7k
- PR merge metrics
- PR metrics pending
Description
Bug Report Checklist
- Have you provided a full/minimal spec to reproduce the issue?
- Have you validated the input using an OpenAPI validator (example)?
- Have you tested with the latest master to confirm the issue still exists?
- Have you searched for related issues/PRs?
- What's the actual output vs expected output?
- [Optional] Sponsorship to speed up the bug fix or feature request (example)
Description
File uploads fail on server-side as the "file" part are missing necessary headers.
openapi-generator version
5.1.0
OpenAPI declaration file content or url
Relevant snippet below:
"/upload": {
"post": {
"tags": [
"Upload"
],
"summary": "Upload log files",
"operationId": "post",
"parameters": [
{
"name": "accountId",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "type",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"properties": {
"file": {
"type": "string",
"format": "binary"
}
}
}
}
}
},
"responses": {
Generation Details
Language: Kotlin
Library: Multiplatform
Steps to reproduce
- Run openapi-generator-cli: openapi-generator-cli generate -g kotlin -o logging-api-client -i api-docs.json -c config.yaml --library multiplatform
- Compile generated code and attempt a file upload
Suggest a fix
I was able to modify the source for the UploadApi class to include the ContentType and ContentDisposition headers and the upload behaved as expected.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the provided openapi-generator-cli command with the Kotlin multiplatform library and the supplied OpenAPI snippet. Compare the generated UploadApi class with the attached modified version and inspect the get input provider snippet; done means a multipart upload includes the required ContentType and ContentDisposition headers and succeeds on the server.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin, openapi
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100