我试图在spring boot应用程序中使用swagger注释从Java代码中获取swagger规范(yaml)。我对模型进行注释,然后运行springboot应用程序,然后从http://localhost:8080/v2/api-文档。
我的模型如下所示:
package com.indiana.core;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
@lombok.ToString
@lombok.Getter
@lombok.Setter
public class SampleClass{
@JsonProperty(value = "birth_date_time")
private LocalDateTime birthDateTime;
....
}'
我想为此创建正确的swagger yaml斑点。当我访问自动提供yaml的swagger UI时,我期待下面的内容。
注意dateOfBirth是一个Java 8 LocalDateTime类(https://swagger.io/specification/查找数据类型部分)yaml中的日期应为类型:“string”,格式为:Date-time。
'SampleClass:
properties:
dateOfBirth:
type: string
format: date-time'
我现在得到的是:
看起来swagger正在构建一个详细的定义LocalDateTime,这不是我要找的。
'"definitions": {
"LocalDateTime": {
"type": "object",
"properties": {
"chronology": {
"$ref": "#/definitions/Chronology"
},
"dayOfMonth": {
"type": "integer",
"format": "int32"
},
"dayOfWeek": {
"type": "string",
"enum": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]
},
"dayOfYear": {
"type": "integer",
"format": "int32"
},
"hour": {
"type": "integer",
"format": "int32"
},
"minute": {
"type": "integer",
"format": "int32"
},
"month": {
"type": "string",
"enum": ["JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"]
},
"monthValue": {
"type": "integer",
"format": "int32"
},
"nano": {
"type": "integer",
"format": "int32"
},
"second": {
"type": "integer",
"format": "int32"
},
"year": {
"type": "integer",
"format": "int32"
}
}
},
我试过了
'A. @ApiModelProperty(dataType = "java.lang.String", example = "17-03-2019 22:18:59", notes = "Birthdaytime desc")
B. @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "MM-dd-yyyy hh:mm:ss")'
对于A,元素仅在yaml中定义为字符串,缺少“form: date-time”,如下所示。
SampleClass:
properties:
dateOfBirth:
type: string
需要做什么调整才能创建一个完美的swegger?我需要这个
SampleClass:
properties:
dateOfBirth:
type: string
format: date-time .
只需在LocalDateTime字段上添加以下注释,以在swagger定义中格式化datetime:
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = Shape.STRING)
@ApiModelProperty(required = true, example = "2021-08-20T00:00:00")
Springfox昂首阔步的用户界面有错误的基本网址。我不清楚19080端口从哪里来,因为没有服务监听该端口。我需要做什么设置才能让springfox生成正确的基本网址? Swagger UI http://dev.example.com/newapi/swagger-ui.html 错误的基本URL 基本URL:dev.example。com:19080/newapi 正确的基本URL 基本UR
我试图解析下面的processingdate,以便最终得到格式为2020-11-10T10:43:07 00:00的日期。我如何修改以下内容以产生此结果?
我正在尝试使用Swagger代码生成器生成一个SpringBoot项目。我使用以下命令: 问题:所有类都正确生成,但配置类除外。它们被放入<code>io.swagger。configuration</code>包而不是我自己的包。 问题:如何使swagger生成一个合适的包的配置类?
我有一个OpenAPI规范,我使用了来生成Golang服务器。 从OpenAPI规范生成Swagger documentation server的常规方法是什么? 我已经尝试过swag:它会在http://localhost:8080/swagger/index.html终点。但这需要在代码注释中描述API。我正在寻找一个来自OpenAPI规范的大摇大摆的UI生成器,我已经有了。 谢谢
我有一个复合密钥的实体。订阅和源具有多对多的关系。 我正在使用Spring数据存储库来处理它。 当我尝试使用方法saveAll时,它会抛出 “com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception:未知列'subscripti0_.subscription_id'” 同时尝试在保存后返回值。 Hibernate生成以下查询: 所以,现在我
我正在创建一个允许下载zip文件的api,因此为此,我正在寻找正确的媒体类型,以便在swagger“2.0”规范中发送此zip文件作为响应。 我当前的api规范如下所示 我已经用“go-swagger”编译了这个规范并为此实现了后端,但是当尝试调用这个API时,我得到了这个错误 在swagger的文档中,我没有看到这种媒体类型 官方招摇的媒体类型 那么,如果我们想提供一个API来下载zip文件,那