.= 'tag.htm'; break; case 'flag': $pre .= $default_pre .= 'flag.htm'; break; case 'my': $pre .= $default_pre .= 'my.htm'; break; case 'my_password': $pre .= $default_pre .= 'my_password.htm'; break; case 'my_bind': $pre .= $default_pre .= 'my_bind.htm'; break; case 'my_avatar': $pre .= $default_pre .= 'my_avatar.htm'; break; case 'home_article': $pre .= $default_pre .= 'home_article.htm'; break; case 'home_comment': $pre .= $default_pre .= 'home_comment.htm'; break; case 'user': $pre .= $default_pre .= 'user.htm'; break; case 'user_login': $pre .= $default_pre .= 'user_login.htm'; break; case 'user_create': $pre .= $default_pre .= 'user_create.htm'; break; case 'user_resetpw': $pre .= $default_pre .= 'user_resetpw.htm'; break; case 'user_resetpw_complete': $pre .= $default_pre .= 'user_resetpw_complete.htm'; break; case 'user_comment': $pre .= $default_pre .= 'user_comment.htm'; break; case 'single_page': $pre .= $default_pre .= 'single_page.htm'; break; case 'search': $pre .= $default_pre .= 'search.htm'; break; case 'operate_sticky': $pre .= $default_pre .= 'operate_sticky.htm'; break; case 'operate_close': $pre .= $default_pre .= 'operate_close.htm'; break; case 'operate_delete': $pre .= $default_pre .= 'operate_delete.htm'; break; case 'operate_move': $pre .= $default_pre .= 'operate_move.htm'; break; case '404': $pre .= $default_pre .= '404.htm'; break; case 'read_404': $pre .= $default_pre .= 'read_404.htm'; break; case 'list_404': $pre .= $default_pre .= 'list_404.htm'; break; default: $pre .= $default_pre .= theme_mode_pre(); break; } if ($config['theme']) { $conffile = APP_PATH . 'view/template/' . $config['theme'] . '/conf.json'; $json = is_file($conffile) ? xn_json_decode(file_get_contents($conffile)) : array(); } !empty($json['installed']) and $path_file = APP_PATH . 'view/template/' . $config['theme'] . '/htm/' . ($id ? $id . '_' : '') . $pre; (empty($path_file) || !is_file($path_file)) and $path_file = APP_PATH . 'view/template/' . $config['theme'] . '/htm/' . $pre; if (!empty($config['theme_child']) && is_array($config['theme_child'])) { foreach ($config['theme_child'] as $theme) { if (empty($theme) || is_array($theme)) continue; $path_file = APP_PATH . 'view/template/' . $theme . '/htm/' . ($id ? $id . '_' : '') . $pre; !is_file($path_file) and $path_file = APP_PATH . 'view/template/' . $theme . '/htm/' . $pre; } } !is_file($path_file) and $path_file = APP_PATH . ($dir ? 'plugin/' . $dir . '/view/htm/' : 'view/htm/') . $default_pre; return $path_file; } function theme_mode_pre($type = 0) { global $config; $mode = $config['setting']['website_mode']; $pre = ''; if (1 == $mode) { $pre .= 2 == $type ? 'portal_category.htm' : 'portal.htm'; } elseif (2 == $mode) { $pre .= 2 == $type ? 'flat_category.htm' : 'flat.htm'; } else { $pre .= 2 == $type ? 'index_category.htm' : 'index.htm'; } return $pre; } ?>swagger - rename additionalProperties in YAML schema - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

swagger - rename additionalProperties in YAML schema - Stack Overflow

programmeradmin0浏览0评论

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

发布评论

评论列表(0)

  1. 暂无评论