microsoft / microsoft/typespec
Support multiple content types for OpenAPI 3 request body
- Dominant language
- Java
- Stars
- 5.9k
- Forks
- 394
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 104
Description
How can I write TypeSpec to produce an Operation in OpenAPI 3 that has a request body with multiple content types?
As an example, what I want is:
```
paths:
/widgets:
post:
tags:
- Widgets
operationId: Widgets_process
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Widget'
text/csv:
schema:
type: string
responses:
'200':
description: The request has succeeded.
```
I tried [this (playground)][try1] but it gives an error "Model already has a property named contentType"
I also tried [this (playground)][try2] but it gives the error: "Operation has multiple @body parameters declared"
Finally I tried [this (playground)][try3] but it lumps both bodies under "application/json" -- not what I want.
So is there a way to do this and if so how?
[try1]: https://cadlplayground.z22.web.core.windows.net/?c=aW1wb3J0ICJAdHlwZXNwZWMvaHR0cCI7Cgp1c2luZyBUeXBlU3BlYy5IdHRwOwpAc2VydmljZSh7CiAgdGl0bGU6ICJXaWRnZXQgU8YbIiwKICB2ZXJzaW9uOiAiMS4wLjAiLAp9KQpuYW1lc3BhY2UgRGVtb8cvOwoKbW9kZWwgx0bEWUB2aXNpYmlsaXR5KCJyZWFkIiwgInVwZGF0ZSIpxCBwYXRoCiAgaWQ6IHN0cmluZzsKCiAgd2VpZ2h0OiBpbnQzMjsKICBjb2xvcj86ICJyZWQiIHwgImJsdWUiOwp9CgpAZXJyb3LHe0XEDMV6Y29kZctBbWVzc2FnZcpmfegArkpzb25Cb2R5PFQ%2BxTlAaGVhZGVyIGNvbnRlbnTkATc6ICJhcHBsaWNhdGlvbi9qc29uIsRVQGJvZHkgxA86IFTLU0NzdsRS2090ZXh0L2NzdstHxAXtAJ9Acm91dGUoIi935QFQcyIpCkB0YWco5wGmxBBpbnRlcmbkAYjHFMZzcG9zdCBwcm9jZXNzKAogICAgLi4u6QDoxis%2B5AHdxRnnAK4KICApOsdIIHzmAUrkAIg%3D&e=%40typespec%2Fopenapi3&options=%7B%7D
[try2]: https://cadlplayground.z22.web.core.windows.net/?c=aW1wb3J0ICJAdHlwZXNwZWMvaHR0cCI7Cgp1c2luZyBUeXBlU3BlYy5IdHRwOwpAc2VydmljZSh7CiAgdGl0bGU6ICJXaWRnZXQgU8YbIiwKICB2ZXJzaW9uOiAiMS4wLjAiLAp9KQpuYW1lc3BhY2UgRGVtb8cvOwoKbW9kZWwgx0bEWUB2aXNpYmlsaXR5KCJyZWFkIiwgInVwZGF0ZSIpxCBwYXRoCiAgaWQ6IHN0cmluZzsKCiAgd2VpZ2h0OiBpbnQzMjsKICBjb2xvcj86ICJyZWQiIHwgImJsdWUiOwp9CgpAZXJyb3LHe0XEDMV6Y29kZctBbWVzc2FnZcpmfegArkpzb25Cb2R5PFQ%2BxTlAaGVhZGVyKCJjb250ZW50LeQBUCIpIGpz5QEGYXBwbGljYXRpb24vxBMixF4uLi5Uy1NDc3bEUt1PdGV4dENzdjogIsQKL2NzdsVKQGLEOWPGQe0ArkByb3V0ZSgiL3flAV9zIikKQHRhZyjnAbXEEGludGVyZuQBl8cU5gCCcG9zdCBwcm9jZXNzKAogIMhmxAU66gEAxjQ%2B5AH15QDS5wDGCiAgKTrHUSB85gFi5ACR&e=%40typespec%2Fopenapi3&options=%7B%7D
[try3]: https://cadlplayground.z22.web.core.windows.net/?c=aW1wb3J0ICJAdHlwZXNwZWMvaHR0cCI7Cgp1c2luZyBUeXBlU3BlYy5IdHRwOwpAc2VydmljZSh7CiAgdGl0bGU6ICJXaWRnZXQgU8YbIiwKICB2ZXJzaW9uOiAiMS4wLjAiLAp9KQpuYW1lc3BhY2UgRGVtb8cvOwoKbW9kZWwgx0bEWUB2aXNpYmlsaXR5KCJyZWFkIiwgInVwZGF0ZSIpxCBwYXRoCiAgaWQ6IHN0cmluZzsKCiAgd2VpZ2h0OiBpbnQzMjsKICBjb2xvcj86ICJyZWQiIHwgImJsdWUiOwp9CgpAZXJyb3LHe0XEDMV6Y29kZctBbWVzc2FnZcpmfegArkpzb25Cb2R5PFQ%2BxTlAaGVhZGVyKCJjb250ZW50LeQBUCIpIGpz5QEGYXBwbGljYXRpb24vxBMixF4uLi5Uy1NDc3bEUt1PdGV4dENzdjogIsQKL2NzdsVKQGLEOWPGQe0ArkByb3V0ZSgiL3flAV9zIikKQHRhZyjnAbXEEGludGVyZuQBl8cU5gCCcG9zdCBwcm9jZXNzKAogIMhmxAU66gEAxjQ%2BIHzoAMAKICApOsdLIHzmAVzkAIs%3D&e=%40typespec%2Fopenapi3&options=%7B%7D
Contributor guide
Assessment
This issue has not been assessed yet.