Ошибка Int32 во время тестирования контракта с Dredd

У меня есть приложение, которое использует 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. Любые идеи, как решить эту проблему? Есть ли определенная аннотация, которую мне нужно использовать?


person Haych    schedule 28.04.2020    source источник


Ответы (1)


Переход на dredd 12 решил эту проблему для меня. Похоже, в версиях 13.x есть проблема с этим.

person slim1979    schedule 23.06.2020