swagger - rename additionalProperties in YAML schema - Stack Overflow

admin2025-04-18  3

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
Add a comment  | 

2 Answers 2

Reset to default 0

The 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

转载请注明原文地址:http://anycun.com/QandA/1744920616a89500.html