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

在swagger API中指定字符串数组作为主体参数

华宣
2023-03-14

我想发布一个字符串数组,如

[
  "id1",
  "id2"
]

到基于 Swagger 的 API。在我的大摇大摆的文件中,我有这些行:

paths:
  /some_url:
    post:
      parameters:
        - name: ids
          in: body
          required: true

将< code > id 的类型指定为字符串数组的正确方法是什么?

更新:

根据规范,以下应该在我的选项中工作:

  parameters:
    - in: body
      description: xxx
      required: true
      schema:
        type: array
        items:
          type: string

https://github.com/Yelp/swagger_spec_validator不接受它,并返回一长串错综复杂的错误,这些错误看起来像代码需要一些$ref

共有3个答案

闽鸿宝
2023-03-14

这些答案对我来说都不管用。正如以下Baeldung文章所述:

为了更好地记录API并指导用户,我们可以使用如何插入值的示例标签

因此,完整的工作示例如下:

swagger: "2.0"

info:
  title: A dummy title
  version: 1.0.0

paths:
  /path:
    post:
      parameters:
        - in: body
          description: xxx
          required: true
          name: a name
          schema:
            type: array
            items:
              type: string
            example: ["str1", "str2", "str3"]
      responses:
        default:
          description: OK

您可以在Swagger编辑器中查看示例值现在是如何更好地显示的。

通寂离
2023-03-14

我创造了一个大摇大摆的问题,因为阿诺德提供的帮助,虽然是有效的yaml,但会给你NPE例外时,试图生成。您需要提供如下所示的对象:

  myDataItem:
    type: object
    description: A list of values
    required:
      - values
    properties:
      values:
        type: array
        items:
            type: string

然后参考它(在你的帖子等中):

  schema:
    $ref: "#/definitions/myDataItem"

供参考的github问题:

https://github.com/swagger-api/swagger-codegen/issues/6745

请注意,该问题已在2.3.0及更高版本中修复,理想情况下您应该升级到该版本。

戚阳
2023-03-14

您对字符串数组的描述是正确的,但是参数定义缺少有效的< code>name属性。

下面是一个完整的工作示例:

swagger: "2.0"

info:
  title: A dummy title
  version: 1.0.0

paths:
  /path:
    post:
      parameters:
        - in: body
          description: xxx
          required: true
          name: a name
          schema:
            type: array
            items:
              type: string
      responses:
        default:
          description: OK

尝试使用在线编辑器来检查您的OpenAPI(fka。招摇)规格:http://editor.swagger.io/

 类似资料:
  • 我试图将列表定义为函数param的类型,但我不知道如何执行此操作 我知道python允许您定义函数,指定函数params期望的值类型。例子: 但是我不知道这个注释是如何被称为,因此很难找到关于这个的文档。我也知道这只是代码文档中的一种美学,而不是参数的某种类型强制。 你能帮我定义一个列表和这个注释的名称吗? 为了更清楚地说明我想要的打字稿,它会这样写

  • 如何拥有绑定类型的可选参数

  • 问题内容: 我正在使用Swift 3,并且需要与C API进行交互,例如,C API接受以NULL终止的字符串列表 在Swift中,API的导入方式如下 在尝试使用类型转换数百次后,我还是无法完成这项工作。即使我传递通过编译的有效指针,它也会在运行时崩溃,提示无效的内存访问(在strlen函数中)。还是关于ARC的东西? 问题答案: 您可以像如何通过使用char **参数将Swift字符串数组传递

  • 问题内容: 我以此为参考在Struts2上创建仅REST配置: https://cwiki.apache.org/confluence/display/WW/REST+Plugin 我有一个模型,带有几个测试字段的收据:标题,正文。 当前要创建收据,我以这种方式发送请求: 它会为我创建一个收据,其中包含新的正文和标题。 这不起作用: 这是一些代码: : : 它是否应该按我想要的方式工作,或者只是插

  • 问题内容: 我有一个; 我想转换为字符串数组。我该怎么做?有内置的Java函数吗?可以手动完成,但是我正在搜索Java内置函数。 我想要一个数组,其中字符串的每个字符都是一个字符串。像char’n’现在将是存储在数组中的字符串“ n”。 问题答案: 要开始你的作业,请在正则表达式上拆分字符串,该表达式可以为空字符串: 产生数组: 留空的第一条目留给读者练习:-) 注意:在Java 8中,不再包含空

  • 问题内容: 我有一个字符串: 我想要一个简单的方法将其转换为实际的。 我能从中挖掘出的所有其他问题都与将int字符串转换为数组有关。 我试着做 但是我明白了 手动清理边缘并去除斜线似乎是我做错了什么。 我很好奇是否有一种简单的方法可以将字符串数组作为字符串转换为字符串数组。 即转换为 解决方案 (感谢@Eric D) 问题答案: 将您的“字符串数组”编码为数据,然后将此数据作为JSON解码为Swi