У меня есть приложение, которое использует Swagger2. У этого есть конечная точка, которая имеет следующую документацию по чванству:
{
"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"
}
Тогда мой тест пройдет.
Я создаю эту документацию по чванству, используя аннотации Springfox следующим образом:
@ApiModel
public class MyResponse{
@ApiModelProperty(dataType = "Number")
private int resultCount;
@ApiModelProperty(dataType = "MyResult")
private MyResult aresult;
}
Что я пытаюсь сделать, так это иметь какую-то аннотацию, которая заставляет swagger2 генерировать документацию без строки "format": "int32"
, которая, похоже, вызывает сбой теста.
Я не думаю, что это проблема Дредда, проблема в том, что я не знаю, как выразить то, что я хочу, в Swagger. Любые идеи, как решить эту проблему? Есть ли определенная аннотация, которую мне нужно использовать?