I have a simple yaml file with API description where I want to use additionalProperties
openapi: 3.0.1
info:
title: exampleApp
version: 1.0.0
paths:
/example:
post:
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Example"
responses:
'200':
description: >
Success.
content:
application/json:
schema:
type: string
components:
schemas:
Example:
type: object
properties:
name:
type: string
prop1:
type: string
additionalProperties:
type: string
everything works fine, query is correctly mapped to query and handled in app, but I would like to rename it in schema for documentation purposes to name which I use in code. I was looking for some solution like aliases, but since it is keyword I didn't found proper solution to do this swagger output for schemas part of yaml
I want to have renamed property name in schemas part to match object name in application the output should be object like this
{
string name;
string prop1;
Dictionary<string, string> CustomName;
}
I have a simple yaml file with API description where I want to use additionalProperties
openapi: 3.0.1
info:
title: exampleApp
version: 1.0.0
paths:
/example:
post:
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Example"
responses:
'200':
description: >
Success.
content:
application/json:
schema:
type: string
components:
schemas:
Example:
type: object
properties:
name:
type: string
prop1:
type: string
additionalProperties:
type: string
everything works fine, query is correctly mapped to query and handled in app, but I would like to rename it in schema for documentation purposes to name which I use in code. I was looking for some solution like aliases, but since it is keyword I didn't found proper solution to do this swagger output for schemas part of yaml
I want to have renamed property name in schemas part to match object name in application the output should be object like this
{
string name;
string prop1;
Dictionary<string, string> CustomName;
}
Share
Improve this question
edited Jan 30 at 12:15
Maddie
asked Jan 30 at 12:09
MaddieMaddie
13 bronze badges
2 Answers
Reset to default 0The way you have your schema defined means additionalProperties
is the actual attribute name, not the JSON Schema keyword additionalProperties which allows a dynamic property name with a schema
Try this
Example:
type: object
properties:
name:
type: string
prop1:
type: string
additionalProperties:
type: string
I found solution to this problem
components:
schemas:
Example:
type: object
properties:
name:
type: string
prop1:
type: string
customName:
type: object
additionalProperties:
type: string
this way I have clear documentation in Schemas part schemas presentation in swagger
With this solution in Schema on swagger site is custom name visible, but the values inside can be added with various keys and are successfully mapped into Dictionary. Even if, at least for me, it looks like CustomName object could be object with property of Dictionary type