Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >OpenAPI 3.0通用数据类型

OpenAPI 3.0通用数据类型
EN

Stack Overflow用户
提问于 2018-07-24 13:08:04
回答 2查看 12.7K关注 0票数 26

在OpenAPI 3中,如何最好地描述包含真实数据类型的泛型响应类型。

简化示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ApiResponse:
  data: object
  error: string

但是/users端点应该提供:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ApiResponse<List<User>>

所以这基本上就是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ApiResponse:
  data: List<User>
  error: string

目前看起来这是不可能的,但我只是想确认一下。我想现在最好的方法是对每个调用进行命名响应,并使用allOf引用ApiResponse并实现数据:特定值。

EN

回答 2

Stack Overflow用户

发布于 2018-08-06 09:59:49

我花了很多时间寻找泛型类型,但是没有办法在OpenAPI3中定义泛型类型。最简单的方法是同时使用allOf和$ref。假设有如下列表模式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
List:
   type: object
   properties:
       page_number:
          type: integer
       page_count:
          type: integer

书的模式是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Book:
   type: object
   properties:
       title:
          type: string
       summary:
          type: string

要返回列表,路径为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  /api/v1/books:
      get:
        responses:
          default:  
            description: description text
            content:
              application/json:
                schema:
                  allOf:
                    - $ref: '#/components/schemas/List'
                    - type: object
                      properties:
                        items: 
                          type: array
                          items: 
                            $ref: '#/components/schemas/Book'

这个结果是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   {
        "page_number": 1,
        "page_count": 10,
        "items": [{
            "title": "title",
            "description": ""
        },
        ... ]
    }

实际上,这是一份书单。如您所见,您可以同时将列表的主要属性添加到结果和列表项类型中。您也可以对其他人重复此模式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  /api/v1/authors:
      get:
        responses:
          default:  
            description: description text
            content:
              application/json:
                schema:
                  allOf:
                    - $ref: '#/components/schemas/List'
                    - type: object
                      properties:
                        items: 
                          type: array
                          items: 
                            $ref: '#/components/schemas/Author'
票数 24
EN

Stack Overflow用户

发布于 2019-01-15 15:26:35

您可以使用带有additionalProperties的类型object和true值来获取自由形式的对象。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51499445

复制
相关文章
OpenAPI 3.0 规范-食用指南
OpenAPI 的其余功能都是基于这 8 根对象扩展而成,凡是包含以上对象并且扩展名为 json,yaml 的文件,我们可以将其视为符合 OpenAPI 规范的描述文件 ,你可以在:API Editor 在线编辑器 中来验证你的 OpenAPI 文件是否符合规范,以下我们就主要介绍 8 个根对象的使用和扩展方法
phoenix.xiao
2022/11/11
13.7K1
OpenAPI 3.0 规范-食用指南
MySQL通用数据类型
上一章阿常给大家讲了MySQL DATE 函数之 EXTRACT(),今天我们讲 MySQL 通用数据类型。
程序媛淼淼
2022/09/01
8400
MySQL通用数据类型
OpenAPI初探
项目中使用gin组件实现的api接口,总是需要修改代码,又要修改md文档。总想有没有一种办法,能够只写一遍就能完成代码和文档的修改,很快发现了gin-swagger组件,可以通过代码的注释生成文档,但写代码同时写入详细的注释让人发狂。
peakxie
2019/08/29
5.2K0
OpenAPI初探
Swift3.0 - 数据类型
// 插入操作 shoppingList.insert("Maple Syrup", at: 0)
酷走天涯
2018/09/14
6410
拥抱 OpenAPI 3: springdoc-openapi 食用指南
使用 springdoc-openapi 可以快速为 springboot 项目生成规范的 API 文档,具体使用步骤如下:
phoenix.xiao
2022/11/11
6.9K0
拥抱 OpenAPI 3: springdoc-openapi 食用指南
openapi-generator
海纳百川,有容乃大;壁立千仞,无欲则刚。——林则徐 分享一个开源项目:openapi-generator 可以生成对外的api 官方文档:https://openapi-generator.tech/ 还有教程
阿超
2023/05/11
1.1K0
openapi-generator
openwrt外网web管理_OpenAPI
注意,OpenERP 模块中 web 部分用到的所有文件必须被放置在模块内的 static 文件夹里。这是强制性的,出于安全考虑。
全栈程序员站长
2022/11/17
6.4K0
DRF自动生成OpenAPI文档
API schemas是非常有用的,可以帮助我们生成接口文档以及可与API交互的动态客户端。Django REST Framework支持自动生成OpenAPI schemas,但是目前支持的不是非常完善,需要手动修改的地方过多。在这里我们使用drf-spectacular这个第三方库来自动生成OpenAPI schemas.
zy010101
2021/12/21
2.8K0
DRF自动生成OpenAPI文档
Spring Boot使用OpenAPI规范
在WEB领域里面,随着前后端分离,后端的HTTP接口便需要去维护一份大而全的Rest API,一个比较靠谱的文档工具是必不可少的。
李鸿坤
2020/10/23
4.1K0
Spring Boot使用OpenAPI规范
.NET7 gRPC JSON转码+OpenAPI
gRPC JSON 转码允许浏览器应用调用 gRPC 服务,就像它们是使用 JSON 的 RESTful API 一样。
Chester Chen
2022/12/19
1.3K0
.NET7 gRPC JSON转码+OpenAPI
【大家的项目】Poem-openapi
尽管有不少朋友已经知道我这几天在做什么,但当Poem-openapi的第一版准时完成,并且完全按照刚开始的想法正常工作时,我还是按捺不住内心的激动希望跟大家分享。
MikeLoveRust
2021/09/08
1.3K0
微信开发之openApi管理
了不起:哦?是吗,那我考考你!假设你调微信的接口,超出限制了你怎么办?你碰到一些微信返回的错误你该怎么做相关处理?
灬沙师弟
2023/09/06
6740
微信开发之openApi管理
使用 OAS(OpenAPI标准)来描述 Web API
无论哪种类型的Web API, 都可能需要给其他开发者使用. 所以API的开发者体验是很重要的. API的开发者体验, 简写为 API DX (Developer Experience). 它包含很多东西, 例如如何使用API, 文档, 技术支持等等, 但是最重要的还是API的设计. 如果 API 设计的不好, 那么使用该API构建的软件就需要增加在时间,人力,金钱等方面的投入. 有时候API会被错用, 甚至带来毁灭性后果. 最后抱怨该API等用户越来越多, 慢慢的, 客户就会停止使用该API.
solenovex
2020/02/18
3.6K0
使用 OAS(OpenAPI标准)来描述 Web API
跟我一起云计算(6)——openAPI
介绍 Open API即开放API,也称开放平台。 所谓的开放API(OpenAPI)是服务型网站常见的一种应用,网站的服务商将自己的网站服务封装成一系列API(Application Programming Interface,应用编程接口)开放出去,供第三方开发者使用,这种行为就叫做开放网站的API,所开放的API就被称作OpenAPI(开放API)。 开放平台分类 根据开放层级划分,开放平台主要分为四层,即“硬件”层、系统层、业务层和应用层。 其中,业务层开放和应用层开放是更加贴近互联网层面的开放方式
cloudskyme
2018/03/20
3.1K0
跟我一起云计算(6)——openAPI
OpenAPI 规范 3.1.0 发布,赶紧来尝尝鲜!
我们常说,新年新气象!这不,刚开年,各大厂商就忙着发布自己的最新产品。 Spring Boot发布了最新的2.4.3版本,昨天小编刚为大家介绍过,有兴趣的小伙伴点这里:Spring Boot 2.4.3、2.3.9 版本发布,你准备好了吗? 除了Spring Boot,OpenAPI也在近日正式发布了其最新的3.1.0版本规范。 OpenAPI 规范是用于描述 API 的行业标准,它允许开发人员和计算机在不需要访问源代码、文档或网络流量的情况下理解 API 的功能。 本次更新是在3.1.0-rc1版本的基
程序猿DD
2023/04/04
1.7K0
OpenAPI 规范 3.1.0 发布,赶紧来尝尝鲜!
Hadoop3.0通用版集群安装高可靠详细教程
问题导读 1.hadoop3.x检测虚拟内存的情况下,可能会产生什么问题? 2.hadoop3.x中,下面各个配置的作用是什么? 3.dfs.blocksize可以使用哪些单位? hadoop
用户1410343
2018/03/26
1.3K0
Hadoop3.0通用版集群安装高可靠详细教程
百度飞桨:ERNIE 3.0 、通用信息抽取 UIE、paddleNLP的安装使用[一]
【一】ERNIE:飞桨开源开发套件,入门学习,看看行业顶尖持续学习语义理解框架,如何取得世界多个实战的SOTA效果?_汀、的博客-CSDN博客_ernie模型
汀丶人工智能
2022/12/21
2.1K0
百度飞桨:ERNIE 3.0 、通用信息抽取 UIE、paddleNLP的安装使用[一]
OpenAPI 标准规范,了解一下?
什么是API规范 API 是模块或者子系统之间交互的接口定义。好的系统架构离不开好的 API 设计,而一个设计不够完善的 API 则注定会导致系统的后续发展和维护非常困难。在关键环节制定明确的API规范有助于 Service 对内提高产品间互通的效率,对外提供一致的使用体验,也有助于更好地被集成。 对于API规范,比较知名的是 OpenAPI Specfication[1] 和 Google API Design Guide[2]。前者针对 RESTful API 设计在细节层面给出了非常具体的规定,已经成
程序猿DD
2023/04/04
2.9K0
OpenAPI 标准规范,了解一下?
OpenAPI规范3-Swagger2 的美化使用
本人自己使用的swagger2.0,鉴于颜值和OpenAPI规范,就想体验下,后续再补充各种情况的demo。
软件测试君
2022/01/24
6.6K0
OpenAPI规范3-Swagger2 的美化使用
Caused by: java.net.UnknownHostException: openapi.alipay.com
支付宝下单,openapi.alipay.com就是传说中的支付宝网关名。 所有的所有配置好以后,包括pid、appid以及RSA私钥、公钥和支付宝公钥。 支付系统采用了,dubbo+springMvc实现负载均衡集群(采用roundrobin轮询的方式),这里只部署了2台服务。假设这里是服务器A 192.168.1.180 服务器B 192.168.1.181 好了,开始下蛋了,服务器A下单成功,继续下单,轮询到B的时候事故出现了: java.net.UnknownHostException: open
小柒2012
2018/04/16
5.7K1

相似问题

OpenAPI 3.0 - allOf 3.0

10

OpenApi 3.0 anyOf

21

需要OpenApi 3.0 requestBody

10

OpenAPI 3.0 -条件嵌套对象

10

OpenApi 3.0:覆盖全局安全

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文