Swagger UI 不在模型中显示枚举值

Posted

技术标签:

【中文标题】Swagger UI 不在模型中显示枚举值【英文标题】:Swagger UI don't display enum values in models 【发布时间】:2016-09-29 03:48:57 【问题描述】:

我在使用 Swagger UI 时遇到了一个小问题,我不确定这是否是一个错误...

我已经使用 Swagger Editor 描述了我的 API,并且我有一个包含枚举参数的方法。

现在,问题是:在生成的 Swagger-UI 文档中,在“模型”选项卡中,我有一个空的“消息类型”对象定义:(我想显示允许的值(BRAND、VISITOR、COMMENT 和回应)

一个代码sn-p重现:

swagger: '2.0'
info:
  version: 1.0.0-SNAPSHOT
  title: foo
  description: foo
host: dev.fr
basePath: /base
schemes:
  - http
  - https
consumes:
  - application/json
produces:
  - application/json

paths:
  /social/message:
    post:
      operationId: create
      responses:
        '201':
          schema:
            $ref: '#/definitions/message'
        'default':
          description: Default error response

definitions:
  message:
    required:
      - title
      - messageType
    properties:
      title:
        type: string
      messageType:
        $ref: '#/definitions/messageType'

  messageType:
    enum:
      - COMMENT
      - RESPONSE

有什么想法吗?我做错了吗?这是一个错误吗? 非常感谢:)

【问题讨论】:

您的messageType 没有声明它是typeenum 不是 JSON 模式中的有效类型。考虑将type: string 作为同级添加到枚举中。 你说得对!谢谢:) 【参考方案1】:

fehguy 是对的,通过在我的对象上添加“type: string”解决了问题:)

【讨论】:

以上是关于Swagger UI 不在模型中显示枚举值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 OpenAPI (Swagger) 中定义枚举?

在 Swagger UI 中,如何自定义 body 输入 ui(模型架构 UI)

Golang Gin 项目使用 Swagger

Nodejs Koa2框架中使用Swagger

golang gin框架 使用swagger生成api文档

Swagger Swashbuckle Asp.NET Core:显示使用的每个枚举的详细信息