Это ошибка в Spring REST Docs. Спасибо, что обратили на это мое внимание. Документирование items[].k2[].name
должно быть достаточным для того, чтобы items[].k2
считалось документированным, поскольку оно не имеет недокументированного содержания. Я открыл эту проблему , чтобы поведение REST Docs можно было исправить.
Пометка поля как необязательного указывает REST Docs, что тест все равно должен пройти, если поле отсутствует. Это не влияет на то, нужно ли задокументировать поле. Вот почему пометка поля как optional
не обошла проблему.
Вы можете обойти эту проблему, явно задокументировав items[].k2
:
fieldWithPath("items[].k2").description("...")
В качестве альтернативы, если вы не хотите, чтобы в вашей документации была запись для этого поля, вы можете указать REST Docs игнорировать ее:
fieldWithPath("items[].k2").ignored()