如何在 swagger 中成功记录多种内容类型的 GET 响应

2024-03-13

假设我们有一个 json swagger 规范示例:

{
"swagger": "2.0",
"info": {
    "version": "1.0.0",
    "title": "Some API"
},
"basePath": "/api/v1",
"consumes": [
    "application/json"
],
"produces": [
    "application/json",
    "text/csv"
],
"paths": {
    "/some/endpoint": {
        "get": {
            "parameters": [
                {
                    "in": "body",
                    "name": "body",
                    "required": false,
                    "schema": {
                      "$ref": "#/definitions/BodyParamsDefinition"
                    }
                }
            ],
            "responses": {
                "200": { ?? } ...

可以生成两种内容类型:

  • 应用程序/json
  • text/csv

默认响应GET /some/endpoint是一个 csv 文件,但如果format查询参数的使用方式如下/some/endpoint?format=json,响应将采用 json 格式。

我无法找到如何通过正确的回应来完成我的规范。 当我使用这种方法时:https://swagger.io/docs/specification/describing-responses/ https://swagger.io/docs/specification/describing-responses/我收到验证错误:...get.responses['200'] should NOT have additional properties


你就快到了,你只需要定义一个schema的回应。这schema定义与此状态代码关联的所有内容类型的响应结构。

例如,如果操作返回以下 JSON:

[
  {
    "petType": "dog",
    "name": "Fluffy"
  },
  {
    "petType": "cat",
    "name": "Crookshanks"
  }
]

以及这个 CSV:

petType,name
dog,Fluffy
cat,Crookshanks

你会使用:

# YAML
responses:
  200:
    description: OK
    schema:
      type: array
      items:
        type: object
        properties:
          petType:
            type: string
          name:
            type: string

更多信息:描述回应 https://swagger.io/docs/specification/2-0/describing-responses/


在 OpenAPI 3.0 中,内容类型定义得到了改进,并且架构可能因内容类型而异:

openapi: 3.0.0
...

paths:
  /some/endpoint:
    get:
      responses:
       '200':
          description: OK
          content:
            # JSON data is an object
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
            # CSV data is a string of text
            text/csv:
              schema:
                type: string

默认响应GET /some/endpoint是一个 csv 文件,但如果format查询参数的使用方式如下/some/endpoint?format=json,响应将采用 json 格式。

目前无法将特定响应映射到特定操作参数,但 OpenAPI 规范存储库中有几个相关提案:

  • 通过允许路径中的查询参数来适应旧版 API https://github.com/OAI/OpenAPI-Specification/issues/123
  • 路径规范中的查询字符串 https://github.com/OAI/OpenAPI-Specification/issues/164
  • 支持一个操作每条路径有多个规范 https://github.com/OAI/OpenAPI-Specification/issues/182
  • 超载 https://github.com/OAI/OpenAPI-Specification/issues/298
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 swagger 中成功记录多种内容类型的 GET 响应 的相关文章

  • 创建 df 以生成给定格式的 json

    我正在尝试生成一个 df 来生成下面的 json Json数据 name flare children name K1 children name Exact size 4 name synonyms size 14 name K2 chi
  • 如何在notepad++中格式化JSON

    我想在记事本 中格式化JSON字符串 请指导我该怎么做 我研究了这个解决方案记事本 JSON 格式 https stackoverflow com questions 1560464 how to reformat json in note
  • 在 Django 中处理 ajax json 对象 - 'QueryDict' 对象没有属性 'read' 错误

    我正在尝试解析 Django 视图中的 json 对象 该对象已通过 ajax 通过 post 方法从客户端传递过来 JS post update vendor merchandise types JSON stringify json o
  • 如何在Google机器学习中将jpeg图像转换为json文件

    我正在研究 Google Cloud ML 我想对 jpeg 图像进行预测 为此 我想使用 gcloud beta ml 预测 instances INSTANCES model MODEL version VERSION https cl
  • 如何限制 JSON 访问?

    我有一个 Web 应用程序 可以从新创建的 JSON API 中提取数据 我的静态 HTML 页面通过 JavaScript 从静态 HTML 页面动态调用 JSON API 如何限制对 JSON API 的访问 以便只有我 我的网站 可以
  • 使用 jQuery 获取 JSON Facebook Graph API 用户信息

    我正在尝试使用图形 API 来获取有关用户的一些基本信息 无需用户授权 只需获取公共详细信息 我正在尝试使用 jQuery 和 getJSON 来获取数据并解析它 但我很难弄清楚如何访问我想要的键值对 我想要有类似的东西 var fburl
  • 将 JSON 数组转换为 bash 数组并保留空格

    我想将 JSON 文件转换为 bash 字符串数组 稍后我可以对其进行迭代 我的JSON结构如下 USERID TMCCP CREATED DATE 31 01 2020 17 52 USERID TMCCP CREATED DATE 31
  • 使用本地 JSON 数据填充 jQuery Mobile ListView

    我正在尝试使用本地 JSON 信息填充 JQM ListView 但是 不会创建任何列表项 任何帮助 将不胜感激 这是我的代码 JSON 文件结构 name test calories 1000 fat 100 protein 100 ca
  • 字符串化 JavaScript 对象

    我正在寻找字符串化一个对象 我想要这样的输出 1 valeur dalebrun usager experttasp date 2013 08 20 16 41 50 2 valeur test usager experttasp date
  • jq - 按值排序

    我有以下结构 ID XX guid 1 ID YY guid 2 我尝试过运行 jq sort by guid conn json 但是我收到一个错误 Cannot index string with string guid 请您告诉我如何
  • Foreach Ajax Json - Jquery

    谁能帮我 我有一个数组 stars Chris Pine Keira Knightley Kevin Costner 我想做的是 foreach star 我想将输入附加到 div 和 foreach star 它们在输入中具有值 这就是我
  • 如何使用重复的键动态生成 JSON 对象?

    我知道这听起来不可能 但我的老板告诉我 我必须使用 jQuery 通过 AJAX 后调用发送 JSON 并且必须具有重复的键 问题是 如果我写这样的东西 post someurl key1 value1 key2 value2 key2 v
  • 如何更改 Swagger-ui URL 前缀?

    我正在使用 Springfox Swagger2 和 Spring boot 1 5 9 我可以通过此链接访问 swagger UI http localhost 8090 swagger ui html http localhost 80
  • 使用 Spring / JPA 写入 Postgres 数据库的 JSON 列

    我有一个名为 test 的表 其中包含 Postgres 9 3 中 json 类型的列 sample column 我正在尝试使用 Spring JPA 将以下内容写入列中 name 更新的名称 我在其他帖子中读到 我需要添加自定义转换器
  • 如何在具有现有记录的 json 数据表顶部添加新行

    我试图在数据表顶部添加一行 显示 金额 列的总和 我正在使用 json 数据表 jquery 插件 列表来显示数据表 如何将此行与现有行一起添加到数据表顶部 我认为这段代码会对你有所帮助 var json uid user123 first
  • NodeJS:将 JSON 保存到 MongoDB

    我正在尝试从 API 获取 JSON 并将其存储到 MongoDB 数据库中 显然 这是行不通的 我的应用程序似乎停留在我尝试将数据保存到数据库的位置 请告知该怎么做 这是我的代码 var express require express v
  • 在android中从JSON生成listview

    我对 Android 完全陌生 目前正在尝试从从我的服务器中提取的 JSON 数组生成列表视图 我已经阅读了很多教程 但没有运气 有一种独特的方法可以做到这一点 请您指出一些适合开始的资源 我读过了this http www josecgo
  • NodeJs读取JSON文件

    我正在使用 NodeJs 读取 json 文件 我的代码非常基本 var obj require sample json console log obj 0 Sample json 文件包含这样的字符串化 JSON sample good
  • .NET Core 2 和 SwashBuckle Swagger UI 未显示

    我已经遵循了一些教程 并且已经让它在工作中工作 但由于某种原因 我无法显示 UI 但创建了 Swagger Json 我上次看的教程是here https learn microsoft com en us aspnet core tuto
  • 无法从 JSON 请求获取数据,尽管我知道它已返回

    我试图获取从 getJSON 返回的数据 但我无法让它工作 我已经在 search twitter API 上尝试了相同的代码 效果很好 但它不适用于其他网站 我知道数据已返回 因为我在使用检查器时可以找到它 我通过检查器找到的值是 id

随机推荐

  • [Vue 警告]:缺少必需的道具:“productInfo”

    我对 Vue 相当陌生 所以这可能是显而易见的 但我一定错过了一些东西 我不断收到错误 Vue warn Missing required prop productInfo 在我的 vue 文件中 它说它在 ProductSlider vu
  • 在 django-tastypie 中,可以在模式中显示选择吗?

    我想弄清楚我是否可以代表模型字段choices给使用 tastypie API 的客户 我有一个 django 1 4 1 应用程序 我正在为其实现 django tastypie 0 9 11 API 我有一个类似于以下内容的模型和模型资
  • 将Python脚本添加到C++项目中

    我如何将用 python 编写的脚本添加到 c 项目中 谢谢 编辑 基本上 脚本所做的只是通过电子邮件发送一些数据 我想将数据和电子邮件地址传递给用 python 编写的函数 希望这能说明问题 你可以看看Boost Python http
  • 当我在模型中加载数据库时,如何在 Codeigniter Profiler 中显示数据库查询?

    我的 Codeigniter 系统使用多个数据库 我不需要每个页面上的每个数据库 因此我在需要的模型中加载每个连接 然后在每个控制器中加载所需的模型 当我以这种方式加载内容时 探查器不会显示来自这些数据库的任何查询 这是我在模型中加载数据库
  • 可变参数模板包扩展

    In Andrei 在 GoingNative 2012 上的演讲 http channel9 msdn com Events GoingNative GoingNative 2012 Variadic Templates are Funa
  • 如何使用 gtk 信号将多个变量作为数据传递

    我有一个小程序 其中 gtk 信号回调函数需要 2 或 3 个变量 我不想创建这些全局变量 该项目的整个目标是整洁 并且我不想创建整个结构 以便我可以将小部件和编译的正则表达式发送到函数 据我所见g signal connect只允许单个数
  • 我无法在 WPF 中为自定义属性设置动画

    我已经为此苦苦挣扎了几个小时 但我找不到我做错了什么 请帮我找出我的错误 我创建了一个具有一个自定义依赖属性的用户控件 并且我想为该属性设置动画 这是我的课程 public partial class UserControl1 UserCo
  • 无法执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile)

    我知道这是一个重复的问题 但其他主题的答案对我没有帮助 我正在使用 Eclipse Photon Java 版本 10 我已在 eclipse 和 pom xml 文件中将 jdk jre 版本设置为 10 我已经更改了 eclipse i
  • Python-查找文本文件中单词列表的词频

    我正在尝试加快我的项目来计算词频 我有 360 多个文本文件 我需要获取单词总数以及另一个单词列表中每个单词出现的次数 我知道如何使用单个文本文件来做到这一点 gt gt gt import nltk gt gt gt import os
  • 同时可靠地使用核心数据

    我正在构建我的第一个 iOS 应用程序 理论上它应该非常简单 但我很难让它足够安全 让我有信心将其提交到 App Store 简而言之 主屏幕有一个表视图 在选择一行后 它会转到另一个表视图 该表视图以主从方式显示与所选行相关的信息 底层数
  • Angular - 拼接函数总是删除最后一个元素

    我有一个对象数组 我想在单击删除键时删除某些对象 但是 无论我创建了多少行 它总是从行数组中删除最后一项 即使我明确地放入这样的行 scope rows splice 1 1 它仍然会删除最后一个元素 而不是第二个元素 JS angular
  • 无法通过数字键盘使用小数(Android 上的 Xamarin Forms)

    我已经尝试了几个论坛上给出的几种解决方案 也在 Xamarin 论坛上提问 但都没有结果 我想在 Xamarin Forms 中创建一个条目 用户可以在其中添加十进制数 问题是我的数字键盘禁用了逗号 我可以使用自定义渲染器添加点 但由于我住
  • 如何在IIS中部署Angular Universal?

    我在 IIS 中部署角度通用应用程序时遇到问题 在角度通用中 创建了两个 dist 文件夹 一个是用于客户端的 dist 另一个是 dist 服务器 当我尝试托管时 我给出了 dist 文件夹的路径 站点正在运行 但页面未从服务器渲染 我遇
  • HTMLInputElement 没有方法“parent”

    我的页面上有两个非常相似的表单 我在 jquery 中进行简单的验证 以检查每个字段是否都有值 然后再使用 ajax 将数据发送到使用该数据的 php 处理程序 由于表单之间的相似性 我无法知道提交的是哪个表单 所以我想尝试通过表单容器 d
  • 将 Google-Play-Services 添加到库项目

    我正在开发一个地图库 并且正在使用 Google Play Services 到目前为止 一切都很好 问题是这样的 我将 Google Play Services 库项目包含在我的地图库中 使用 属性 gt android gt 添加库 使
  • 我是否应该始终在 Dispose 方法中断开事件处理程序的连接?

    我使用 C 工作 我的工作场所有一些代码标准 其中之一是我们连接的每个事件处理程序 例如KeyDown 必须在断开Dispose方法 这有什么好的理由吗 除非您期望事件的发布者比订阅者活得更久 否则没有理由删除事件处理程序 不是 这是民间传
  • 即使 Access-Control-Allow-Origin 设置为 *,为什么仍会发送多个 OPTIONS 请求?

    我已经构建了一个 API api example com 并希望可以从 www example com 访问它我还希望可以从其他域访问它 为此 我添加了 Access Control Allow Origin 但是当我打开 www exam
  • 如何比较两个边缘图像(在 OpenCV 中)?

    在我的项目中 我需要与图像进行比较 一张图像显示渲染模型 另一张图像是照片 其中显示模型中表示的真实对象 我到底想要什么 该算法必须比较两个图像并返回一个描述相似度的数字 假设数字越低 图像就越吻合 两个图像都表示为二进制图像 仅包含真实渲
  • iOS PNG图像旋转90度

    在我正在编写的 iOS 应用程序中 我处理 PNG 因为我处理 Alpha 通道 由于某种原因 我可以将 PNG 加载到我的imageView很好 但是当需要将图像从我的应用程序复制到粘贴板上或将图像保存到我的相机胶卷时 图像会旋转 90
  • 如何在 swagger 中成功记录多种内容类型的 GET 响应

    假设我们有一个 json swagger 规范示例 swagger 2 0 info version 1 0 0 title Some API basePath api v1 consumes application json produc