Автоматическое отображение списка перечислений в весенних документах auto rest не является пояснительным.

Я создал документ, используя документы Spring Auto Rest. При этом используются библиотеки capital.scalable в сочетании с документами java и документами весеннего отдыха. Моя проблема связана с списком перечислений при описании полей запроса. Столбец типа генерирует значение как Массив[Объект]. Кроме того, столбец описания не генерирует оператор must be one of со значениями перечисления, как это происходит, когда полем является только перечисление, а не список перечислений.

public enum Discipline {
  ECONOMICS("economics"),
  SOCIOLOGYANTHROPOLOGY("sociologyanthropology");

  private final String discipline;

  Discipline(final String discipline) {
    this.discipline = discipline;
  }

  public String getId() {
    return discipline;
  }
}

Выше перечисление, которое у меня есть. Он правильно использует tostring для отображения в описании, когда поле используется только как перечисление. Но если список перечислений, т.е.

List<Discipline>

является полем, то оно не описывает должным образом, как указано выше.

Подскажите, пожалуйста, что нужно сделать, чтобы генерировать документ более эффективно?


person Ankit Bhatnagar    schedule 30.11.2017    source источник
comment
Привет, Анкит! Не могли бы вы добавить больше информации о проблеме, с которой вы столкнулись, например код для контроллера/конечной точки и теста? Также было бы полезно знать, какую версию документации Spring REST вы используете.   -  person jstrater    schedule 14.12.2017
comment
Список‹Дисциплина› не пришел должным образом. Я включил это в стиль кода, чтобы теперь его можно было правильно увидеть. Это фактическое поле, то есть список объектов перечисления, как указано выше.   -  person Ankit Bhatnagar    schedule 15.12.2017


Ответы (1)


Вы правы, что списки перечислений еще не поддерживаются должным образом.

Если у вас есть запрос/ответ, например:

class SomeRequest {

    public enum EnumTest {
        ONE, TWO
    }

    /**
     * List of enums
     */
    private List<EnumTest> enumTestList;
}

это задокументировано как Список перечислений, задокументированных с помощью Spring Auto REST Docs с Spring Auto REST Docs на данный момент.

Было бы хорошо, если бы тип был Array[String], а в описании были бы перечислены элементы перечисления, например. «Элементы должны быть одним из [...]».

Spring Auto REST Docs 1.0.11 исправляет тип issue и, таким образом, Array[String] будет отображаться в этой версии.

Я открыл вопрос для улучшения документации списков перечислений: https://github.com/ScaCap/spring-auto-restdocs/issues/194. Пока эта проблема не будет решена, можно вручную добавить «Элементы должны быть одним из [...]» в Javadoc списка в качестве обходного пути.

person Florian Benz    schedule 02.01.2018
comment
Есть ли способ отключить автоматическое описание перечисления в Restdocs? - person ankit; 12.04.2019
comment
Не сейчас. В тех случаях, когда вы этого не хотите, вы можете использовать Spring REST Docs вместо Spring Auto REST Docs. - person Florian Benz; 12.04.2019