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