我正在使用Spring MVC(通过Spring Boot),并使用Swigger Spring MVC库集成了Swigger API文档。
我有一个类看起来像这样:
@ApiModel
public class CartItem {
...
private Money listPrice; // joda money class
@JsonSerialize(using = ToStringSerializer.class)
@ApiModelProperty(required = true, dataType = "java.lang.String")
public Money getListPrice() {
return listPrice;
}
...
}
因为我在这个字段中使用ToString序列化程序,所以它会返回listPrice。换句话说,JSON中的toString:
{
"listPrice": "USD 10.50"
}
然而,swagger文档并不支持dataType=“java.lang.String”。它将响应模型显示为:
"CartItem": {
"description": "",
"id": "CartItem",
"properties": {
"listPrice": {
"required": false,
"type": "Money"
}
}
}
我已经尝试将@ApiModelProperty注释放在字段和方法上,在这两种情况下,必需
字段都被尊重,但dataType
字段被忽略。我还尝试为dataType使用"String"、"string"和"java.lang.String",但都不起作用。
是我遗漏了什么,还是这只是Swigger spring mvc库中的一个bug?
@ApiModel
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class Model {
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonProperty("myDate")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private final LocalDateTime myDateTime;
}
对于OpenApi(Swagger 3.0)和SpringDoc,可以使用以下全局配置。
static {
SpringDocUtils.getConfig().replaceWithSchema(Money.class, new StringSchema());
}
原来dataType
在当前版本的Swagger Spring MVC库中被完全忽略了。我在这里找到了关于它的简短讨论:
https://github.com/springfox/springfox/issues/602
看起来它可以包括在版本2一旦出来。
编辑:尽管版本2说它支持数据类型,但目前似乎不起作用。为了满足我的需求,更好的方法是使用直接模型替换配置文档设置,如下所示:
@Bean
public Docket swaggerSpringMvcPlugin() {
return new Docket(DocumentationType.SWAGGER_2)
.directModelSubstitute(Money.class, String.class);
}
我有一个枚举,我想让这些枚举类型在开关情况下成为字符串。 因此,在上面我硬编码“Mon”,而不是有一种方法,我们可以直接将枚举类型作为字符串。就目前而言,如果我在交换机案例中传递枚举类型,我将获得id 0、1或2,但我需要Mon/Tue/Wed作为字符串
我想将String转换为子类数据类型,如何才能做到?或者这是可能的? 我有一个抽象类帐户 公共抽象类SinAcct扩展了Acct 一个公共类SavAcct扩展了SinAcct 在SavAcct中,有一个构造函数 一个抽象类合并帐户扩展帐户 我想要一个新的SavAcct, 新的SavAcct(数组[1],数组[2],数组[3],Double.parse双(数组[4]) 但它是错误的构造函数SavAc
希望在Spring API网关上实现一个代理来记录请求/响应。我为传入的请求和传出的响应定义了自己的过滤器。 请求网关筛选器: 没有一个工作... 有什么想法或可能的方法来解决这个“得到身体”的问题?
问题内容: 我正在使用poi 3.6 我能够正确创建Excel。但是,当我尝试将单元格类型设置为number时,它总是为我提供常规的单元格类型。 即在新创建的excel中,当我右键单击并设置单元格格式->我总是发现数字是General。 我的代码是这样的 您能建议一下这里缺少什么吗? 问题答案: 您也可以尝试这种方法: 当然,请查看有关数据格式的文档和示例。
字符串也是一种序列,因此,通用的序列操作,比如索引,分片,加法,乘法等对它同样适用。比如: >>> s = 'hello, ' >>> s[0] # 索引 'h' >>> s[1:3] # 分片 'el' >>> s + 'world' # 加法 'hello, world' >>> s * 2 # 乘法 'hello, hell
我在我的项目中使用Spring Boot Spring数据Postgresql Kotlin。 默认情况下,JPA对字符串字段使用varchar(255),因此我需要为我的所有字符串列添加@Col列(列定义="TEXT")。 当我不添加@Column时,有什么方法可以将文本设置为默认字符串?