Swagger 使用Dredd进行合同测试时发生Int32错误
我有一个应用程序,它使用Swagger2。这有一个端点,其中包含以下招摇过市文档:Swagger 使用Dredd进行合同测试时发生Int32错误,swagger,swagger-2.0,springfox,dredd,Swagger,Swagger 2.0,Springfox,Dredd,我有一个应用程序,它使用Swagger2。这有一个端点,其中包含以下招摇过市文档: { "MyEndpoint": { "type": "object", "properties": { "resultCount": { "type": "integer", "format": "int32" }, "results": { "type": "array", "items":
{
"MyEndpoint": {
"type": "object",
"properties": {
"resultCount": {
"type": "integer",
"format": "int32"
},
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/MyResult"
}
},
"title": "MyEndpoint"
},
"MyResult": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"title": "AResult"
}
}
}
这是从我整个项目中的注释自动生成的
运行Dredd合同测试时,我收到以下错误消息:
error: Error: unknown format "int32" is used in schema at path "#/properties/resultCount"
我的dredd.yml
文件指向自动生成的文件,但如果我将其更改为指向手动创建的json
文件,该文件与上面显示的文件相同,除了resultCount
部分如下所示:
"resultCount": {
"type": "integer"
}
@ApiModel
public class MyResponse{
@ApiModelProperty(dataType = "Number")
private int resultCount;
@ApiModelProperty(dataType = "MyResult")
private MyResult aresult;
}
那我的考试就通过了
我正在使用springfox注释生成此招摇过市文档,如下所示:
"resultCount": {
"type": "integer"
}
@ApiModel
public class MyResponse{
@ApiModelProperty(dataType = "Number")
private int resultCount;
@ApiModelProperty(dataType = "MyResult")
private MyResult aresult;
}
我想做的是做一些注释,使swagger2生成文档,而不使用“格式”:“int32”
行,这似乎是导致测试失败的原因
我不认为这是德雷德的问题,但我不知道如何在大摇大摆中表达我的想法。有没有办法解决这个问题?是否需要使用某个注释?降级到dredd 12为我解决了这个问题。看起来13.x版本有问题