当前位置: 首页 > 知识库问答 >
问题:

Swagger HashMap属性类型

叶嘉颖
2023-03-14

是否有任何方法可以在模型部分定义HashMap或泛型对象类型?我有一个返回产品的REST服务,这些产品可以有不同的选择。options属性基本上是一个HashMap,其中id是选项名,其值是选项值。

共有2个答案

汪驰
2023-03-14

这对我有用。没有任何值类型限制

      definitions:
        dynamicFields:
          type: object
          additionalProperties: {}

示例:您可以在此处传递任何类型的值

{
   "dynamicFields" : {
      "accountNo": "aaaaaa3455",
      "customerNo": 123455,
      "isApplicable": true,
      "phoneNo": [
        "38859379384",
        3948399448,
        true
      ]
    }
}
詹弘毅
2023-03-14

是的,这是可能的。

在OpenAPI(fka. Swagger)2.0和3.0中,hashmap始终是一个

  • 键始终是字符串,不需要定义。
  • 值类型是所需的值类型,并使用附加属性进行定义。

假设您想要描述一个<代码>

{
  "key1": "value1",
  "key2": "value2"
}

相应的OpenAPI 2.0定义将是:

definitions:
  StringStringMap:
    type: object
    additionalProperties:
      type: string

在OpenAPI 3.0中,定义为:

components:
  schemas:
    StringStringMap:
      type: object
      additionalProperties:
        type: string


A<代码>

{
  "key1": {"someData": "data", "someOtherData": true},
  "key2": {"someData": "data2", "someOtherData": false}
}

在 OpenAPI 2.0 中将按以下方式定义:

definitions:
  ComplexObject:
    type: object
    properties:
      someData:
        type: string
      someOtherData:
        type: boolean

  StringObjectMap:
    type: object
    additionalProperties:
      $ref: "#/definitions/ComplexObject"

在OpenAPI 3.0中:

components:
  schemas:
    ComplexObject:
      type: object
      properties:
        someData:
          type: string
        someOtherData:
          type: boolean

    StringObjectMap:
      type: object
      additionalProperties:
        $ref: "#/definitions/ComplexObject"

我刚刚在我的OpenAPI(fka Swagger教程)的第4部分中深入介绍了这一点。

OpenAPI (fka。Swagger)规范也简要地解释了这一点。

 类似资料:
  • 属性 属性应该尽可能描述性地命名,避免缩写,并且是小写字母开头的驼峰命名。我们的工具可以很方便地帮我们自动补全所有东西(嗯。。几乎所有的,Xcode 的 Derived Data 会索引这些命名)。所以没理由少打几个字符了,并且最好尽可能在你源码里表达更多东西。 例子 : NSString *text; 不要这样 : NSString* text; NSString * text; (注意:这个习

  • 您好,我正在建立一个动物园微服务,包括动物、员工、客户和价格表。我的动物微服务可以工作,但在我的员工微服务中,我遇到了一个错误,即没有为类型“EmployeeModel”找到属性“name”。在问这个问题之前,我已经在网上搜索了几个小时,还有一些类似的问题。我在模型中没有“名字”employee_name,我只是感到困惑,不知道如何修复它。任何指导/建议/信息将不胜感激:)第一次发布,所以我希望我

  • 由于Python是动态语言,根据类创建的实例可以任意绑定属性。 给实例绑定属性的方法是通过实例变量,或者通过self变量: class Student(object): def __init__(self, name): self.name = name s = Student('Bob') s.score = 90 但是,如果Student类本身需要绑定一个属性呢?可

  • 主要内容:类变量(类属性),实例变量(实例属性),局部变量无论是类属性还是类方法,都无法像普通变量或者函数那样,在类的外部直接使用它们。我们可以将类看做一个独立的空间,则类属性其实就是在类体中定义的变量,类方法是在类体中定义的函数。 前面章节提到过,在类体中,根据变量定义的位置不同,以及定义的方式不同,类属性又可细分为以下 3 种类型: 类体中、所有函数之外:此范围定义的变量,称为类属性或类变量; 类体中,所有函数内部:以“self.变量名”的方式定义的

  • 问题内容: 我是python的新手,了解到类属性就像C ++中的静态数据成员一样。但是,尝试以下代码后,我感到困惑: f2.a是否也等于5? 如果将a定义为列表而不是整数,则预期行为: 我研究了 Python:类和实例属性之间的区别,但是它不能回答我的问题。 谁能解释为什么会有所不同?谢谢 问题答案: 在第二个示例中,您没有做相同的事情。在第一个示例中,您要分配一个新值: 在第二个示例中,您只是在

  • 如何使类示例推断类型基于实例值检查: 打字沙盒。