我想在端点上设置一个注释@deprecated,该注释是由 swagger-codegen 插件从 yaml 文件生成的,例如:
paths:
'/debug-endpoint/v1/person/{id}':
get:
deprecated: true
summary: get person info
description: Get
parameters:
- name: Id
in: path
required: true
type: string
......
Run Code Online (Sandbox Code Playgroud)
使用 deprecated: true 时,在 swagger Ui 编辑器中显示该端点已被弃用,但在 swagger codegen 生成的代码中,该方法上未设置 @deprecated 注释。
是否可以在 swagger codegen 生成的方法上设置 @Deprecated 注释?
我正在使用 OpenAPI Generator 创建客户端,但是当我尝试发出 POST 请求时,LocalDateTime 会被序列化为整数数组,看起来像
{
"startDate": [ 2019, 11, 13, 0, 0 ],
"endDate": [ 2020, 12, 31, 0, 0 ]
}
Run Code Online (Sandbox Code Playgroud)
我正在等待这个结果,像 ISO 字符串一样解析
{
"startDate": "2019-11-13T00:00",
"endDate": "2020-12-31T00:00"
}
Run Code Online (Sandbox Code Playgroud)
我的gradle配置是这样的:
dependencies {
compile 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.10.3'
classpath 'org.openapitools:openapi-generator-gradle-plugin:4.2.3'
}
task generateClientDS(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask) {
inputSpec = "$rootDir/specifications/client-ds.yaml".toString()
outputDir = "$rootDir".toString()
generatorName = 'java'
library = 'resttemplate'
apiPackage = 'com.example.gen.clients.clientds.api'
modelPackage = 'com.example.gen.clients.clientds.dto'
modelNameSuffix = 'DTO'
configOptions = [
hideGenerationTimestamp: 'true',
dateLibrary: 'java8'
]
typeMappings = [
OffsetDateTime: 'java.time.LocalDateTime' …Run Code Online (Sandbox Code Playgroud) java gradle-plugin openapi swagger-codegen openapi-generator
我使用 swagger 为 spring 服务器生成代码并尝试使用 intelliJ 运行。但是我收到以下错误消息。任何帮助表示赞赏。
java: cannot access java.util.function.Predicate
class file for java.util.function.Predicate not found
Run Code Online (Sandbox Code Playgroud)
在线上
.apis(RequestHandlerSelectors.basePackage("io.swagger.api"))
Run Code Online (Sandbox Code Playgroud) 我有一个无法更改的 swagger.json 规范。我正在使用swagger-codegen从 swagger.json 创建一个库,如下所示:
$ java -jar swagger-codegen-cli.jar generate -i swagger.json -l java -o .
Run Code Online (Sandbox Code Playgroud)
问题是在我的 swagger.json 中,一些格式被声明为date-time并且 codegen 将它们转换为OffsetDateTime类类型...但是我的服务请求的响应以 LocalDateTime 的形式出现,如下所示
{....,
"expirationDeadline": "2022-04-22T10:36:13.383",
....}
Run Code Online (Sandbox Code Playgroud)
因此,当我使用该库并尝试反序列化包含2022-04-22T10:36:13.383我的类的 JSONObject 时,它会失败,因为它无法转换2022-04-22T10:36:13.383为OffsetDateTime.
最终,经过一番搜索后,我遵循了类似这样的其他一些线程,并设法将OffsetDateTime类型更改为LocalDateTime使用导入和类型映射,如下所示:
$ java -jar swagger-codegen-cli.jar generate \
-i updated-swagger.json \
-l java \
-o ./java-client-swagger-codegen/ \
--import-mappings org.threeten.bp.OffsetDateTime=org.threeten.bp.LocalDate \
--type-mappings OffsetDateTime=LocalDate
Run Code Online (Sandbox Code Playgroud)
但现在的问题是,swagger-codegen只使用OffsetDateTimeTypeAdaper、和创建 JSON 类DateTypeAdapter,如下所示:LocalDateTypeAdapterSqlDateTypeAdapter
因此,现在每当我尝试反序列化包含 …
我正在使用Swashbuckle.AspNetCore.SwaggerGen版本 v6.1.5 的 ASP.NET Core。
我希望像[HttpGet]或[HttpGet("user")]in a public这样的路由swagger.json用于公共端点,而包含internal在像这样的路由内部的其他路由[HttpGet("internal/user/{userGuid}")]位于swagger.json端点的内部实例中。
我在启动时配置 SwaggerConfigureServices如下:
services.AddSwaggerGen(gen =>
{
gen.SwaggerDoc("v1", new OpenApiInfo
{
Title = "Server API",
Version = "1.0",
Description = "This API features all public available endpoints showing different API features."
});
gen.SwaggerDoc("v1-internal", new OpenApiInfo
{
Title = "Viewer Server API (internal)",
Version = "v1-internal",
Description = "This API features all public available endpoints showing different API features." …Run Code Online (Sandbox Code Playgroud) 我有一个很简单的问题:)
根据伪装文档,它们支持通过api函数传递URI参数来动态更改伪装客户端对象的basePath,如下所示:
好例子:
interface MyClient {
@RequestLine("GET /internal-service")
String internalService(URI baseUrl);
}
Run Code Online (Sandbox Code Playgroud)
关键是我正在使用swagger,后者从yaml文件生成我的API,并将@Param注释添加到所有函数参数,这对我不利。
不良示例:
interface MyClient {
@RequestLine("GET {baseUrl}/internal-service")
String internalService(@Param("baseUrl") String host);
}
Run Code Online (Sandbox Code Playgroud)
有没有办法让摇摇欲坠的生成器生成带有URI参数的API,而无需@Param批注?
预期结果示例:
interface MyClient {
@RequestLine("POST /internal-service")
String internalService(URI baseUrl, @Param("someParam") String someParam);
}
Run Code Online (Sandbox Code Playgroud) 我尝试为使用ASP Net Boilerplate创建的API和API生成c#代码,但响应未正确反序列化。
经调查,似乎使用名为“ AjaxResponse”的类包装了json响应。但是,swagger.json在方法响应中不包括此类型。
有谁知道如何构建一个解释打包结果的C#Swagger客户端?
你应该如何在自动生成的 python 客户端库中指定主机和端口swagger-codegen?
我找到的唯一文档是here。
我在这里与此代码作斗争:https : //github.com/thebignet/swagger-codegen-gradle-plugin-example
尝试使用 Swagger 代码生成器和 Gradle 构建 REST 客户端。我是 Gradle 的新手,看着这个例子很令人困惑,因为有多个变量/属性/名称,我不知道它们来自哪里或它们做什么。特别是这部分:
clean.doFirst {
delete(swaggerOutputDir)
}
configurations {
swagger
}
sourceSets {
swagger {
compileClasspath = configurations.swaggerCompile
java {
srcDir file("${project.buildDir.path}/swagger/src/main/java")
}
}
main {
compileClasspath += swagger.output
runtimeClasspath += swagger.output
}
test {
compileClasspath += swagger.output
runtimeClasspath += swagger.output
}
}
compileSwaggerJava.dependsOn generateApi
classes.dependsOn swaggerClasses
compileJava.dependsOn compileSwaggerJava
Run Code Online (Sandbox Code Playgroud)
swagger.output - 这是从哪里来的?
类、compileJava、swaggerClasses、compileSwaggerJava 这些都是什么?它们似乎没有在任何地方定义并且似乎是随机命名的?
然后自述文件说:为了生成 Swagger 源代码,请启动以下任务。generateApi : 生成 Swagger 代码
Swagger和代码到底是从哪里来的?
任何澄清都非常感谢,我相信会帮助更多的人。
我使用https://generator.swagger.io/ 上的在线 Swagger Codegen为这个 API生成了一个 Python 客户端库。API 使用 Bearer 身份验证:
openapi: 3.0.0
...
paths:
/sandbox/register:
post:
...
security:
- sso_auth: []
...
components:
securitySchemes:
sso_auth:
type: http
scheme: bearer
Run Code Online (Sandbox Code Playgroud)
但是,Configuration生成的 Python 客户端中的类没有access_token字段。
使用生成的客户端库时如何填写不记名访问令牌?
代码生成端点POST /gen/clients/{language}具有authorizationValue和securityDefinition参数 - 我是否需要以某种方式配置这些参数?
"authorizationValue": {
"value": "string",
"type": "string",
"keyName": "string"
},
"securityDefinition": {
"type": "string",
"description": "string"
}
Run Code Online (Sandbox Code Playgroud) swagger-codegen ×10
swagger ×7
c# ×2
java ×2
openapi ×2
python ×2
asp.net-core ×1
bearer-token ×1
feign ×1
gradle ×1
json ×1
nswag ×1
spring ×1
swagger-2.0 ×1