我正在运行openapi-generator generate -i swagger.yml -g html2 -o swagger-out,在我的swagger.yml文件中我有:
openapi: "3.0.0"
info:
title: "User Web-Service"
version: "0.1.0"
servers:
- url: api.myhost.com
description: "Server"
Run Code Online (Sandbox Code Playgroud)
但我想将服务器 URL 和信息版本作为参数变量传递。是否可以?谢谢
我定义了 OpenAPI 3.0 文档并使用 openapi-generator-cli-3.3.4.jar 来生成 Java 代码 (DTO)。但我无法解决这个案例:List<Map<Integer, Set<String>>>.
在Map<Integer, String>问题:
据我所知,我可以使用架构对象: additionalProperties定义地图类型。
OpenAPI 规范additionalProperties:值可以是布尔值或对象。内联或引用模式必须是模式对象,而不是标准的 JSON 模式。
如上所述,我不能将 Map 键设置为整数,对吗?对这个问题有什么建议吗?
在set<String>或set<List<String>>问题:我必须尝试一些努力:
测试 1:设置“uniqueItems”:true
{
"openapi": "3.0",
"info": {
"version": "1.0.0",
"title": "Dr.First Schema",
"license": {
"name": "MIT"
}
},
"components": {
"schemas": {
"Question": {
"type": "object",
"properties": {
"test": {
"type": "array",
"items":{
"type":"string"
}
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
生成 Java DTO …
来自 Soap、XSD、WSDL 领域,我试图找到一种方法来重用使用 OpenApi v3 时定义的一些模式。
目录结构:
地址.yaml
openapi: 3.0.1
info:
title: An include file to define an address
version: 1.0.0
paths: {}
components:
schemas:
Address:
type: object
properties:
id:
type: integer
format: int64
streetName:
type: string
streetNumber:
type: integer
format: int32
city:
type: string
postalCode:
type: string
format: date-time
country:
type: string
description: Allowed countries (just on purpose 3 to have an enum)
enum:
- Romania
- Belgium
- Hungary
Run Code Online (Sandbox Code Playgroud)
客户.yaml
openapi: 3.0.1
info:
title: An include file to …Run Code Online (Sandbox Code Playgroud) 我使用 OpenAPI 3.0 为我的 REST API 服务器编写了规范。现在,与其手动编写大量重复代码,以及可能引入的所有错误,我想快速生成一个 expressjs 应用程序。我知道我可以从editor.swagger.io生成一个服务器应用程序,但是生成的代码是 javascript,所以我不能使用我的模型中的类型!
有没有一种工具可以根据 OpenAPI 3.0 规范生成用 typescript 编写的 express 应用程序?如果它可以创建所有文件夹、控制器并正确使用模型(以标准方式!),那就太棒了。那肯定会很快开始我的项目!
我正在使用openapi-yaml带有 Maven的生成器将一个 swagger 文件转换为一个开放的 API v3 文件。
我想做的是将新文件直接放入某个目录。
然而,一些额外的文件生成,我不需要例如README.md,.openapi-generator/VERSION,.openapi-generator-ignore
是否可以禁用此行为并仅生成.yaml文件?
我在组件模式中使用 OpenAPI 3.0 继承,并且我有由 openapi-generator(使用 Jackson)生成的(Java)类。
为什么鉴别器属性在生成的 JSON 中被序列化两次?
这是一个 JHipster API-First 项目,它应该使用 openapi-generator 来生成 Java 模型(带有 Jackson 注释的 POJO)和 API 控制器(与 Spring 的 @Api 注释的接口)。
通过遵循 OpenAPI 3.x 文档/示例,似乎discriminator还必须在properties架构列表中指定所使用的属性。
这样,生成的 Java 类似乎与带有注释的多态类型处理的 Jackson 指南(此处)不同,其中用作鉴别器的属性不能出现在类中。相反,生成的代码还包含此属性作为具有 getter/setter 的类属性。这会导致 JSON 输出两次包含该属性,如下所示。
我还尝试从 OpenAPIproperties列表中删除该属性,而保留完整的discriminator部分;这样生成的代码对应于杰克逊的指导方针,序列化工作得很好。另一方面,我在反序列化过程中遇到错误,因为在目标类中找不到(已删除)属性。
遵循 OpenAPI 3.x 文档指南:
TicketEvent:
type: object
description: A generic event
discriminator:
propertyName: type
required:
- id
- sequenceNumber
- timestamp
- type
properties:
id:
type: integer
format: int64 …Run Code Online (Sandbox Code Playgroud) 我是OpenAPI3.0.0 的新手。
我已经使用openapi-generator成功创建了一个 java 客户端库。
但是OpenAPIGenerator 允许生成 API 客户端库(SDK 生成)、服务器存根、文档。所以我想知道是否有任何命令或步骤可用于生成 HTML 文档以及自定义文档模板。
我正在查看 openapi-generator 以查看是否可以使用该工具从 avro 模式创建 OpenAPI 模式。查看文档,我无法弄清楚如何提供能够做到这一点的参数。我怎样才能做到这一点?
或者,是否有另一种方法可以使用任何在线工具或以编程方式从 avro 模式中获取 OpenAPI 模式?
我需要进行模式到模式转换的原因是我们使用 kafka 流进行消息传输,并且没有可以与 Swagger 一起使用来生成模式的 REST 端点。此外,生成的消息可能不包含来自 avro 架构的所有属性,并且不标识可选/强制属性。
谢谢
我想创建一个从 openAPI 规范文件生成客户端并使用该客户端的 gradle java 应用程序。所以我创建了一个 java 应用程序gradle init(type:application, language:Java, DSL:groovy, test-framework:Junit Jupiter, project-name:simple-java-app, package-structure: a.aa)。
我可以创建一个second/loc/src/main/java包含包b.bb和类的新源文件夹Foo。并与以下build.gradle
plugins {
id 'java'
id 'application'
}
repositories {
jcenter()
}
sourceSets {
second {
java {
srcDir 'second/loc/src/main/java'
}
}
}
compileJava {
source += sourceSets.second.java
}
dependencies {
implementation 'com.google.guava:guava:29.0-jre'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.6.2'
}
application {
mainClassName = 'a.aa.App'
}
test {
useJUnitPlatform()
}
Run Code Online (Sandbox Code Playgroud)
主类可以访问Foo:
package a.aa; …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用build.gradle脚本中的OpenAPI Generator 为 Android 生成我的 REST API 客户端。这样,每次规格更改时我都不必运行生成器命令行。理想情况下,这将在我构建/组装我的应用程序时生成,并且源代码最终会在java (generated)文件夹中,然后可以从代码访问生成的源代码(例如BuildConfig.java文件会发生这种情况)。
按照他们官方 GitHub 上的这个链接,这是我最终得到的build.gradle文件:
apply plugin: 'com.android.application'
apply plugin: 'org.openapi.generator'
...
openApiValidate {
inputSpec = "$rootDir/app/src/main/openapi/my-api.yaml"
recommend = true
}
openApiGenerate {
generatorName = "java"
inputSpec = "$rootDir/app/src/main/openapi/my-api.yaml"
outputDir = "$buildDir/generated/openapi"
groupId = "$project.group"
id = "$project.name-openapi"
version = "$project.version"
apiPackage = "com.example.mypackage.api"
invokerPackage = "com.example.mypackage.invoker"
modelPackage = "com.example.mypackage.model"
configOptions = [
java8 : "true",
dateLibrary : "java8", …Run Code Online (Sandbox Code Playgroud)