Это зависит от того, что именно вы хотите задокументировать и как вы хотите описать вещи своим пользователям. Я бы сосредоточился на двух разных типах узлов - поддеревьях и листах - и предоставил документацию, которая описывает их формат и что каждый узел в дереве будет либо листом, либо поддеревом.
Вы можете использовать REST Docs для документируйте структуру двух разных типов узлов, используя фрагмент поля ответа, сфокусированный на определенной части c ответа:
responseFields(beneathPath("left.left").withSubsectionId("leaf"),
fieldWithPath("id").description("ID of the node"),
fieldWithPath("type").description("Type of the node. Always 'leaf' for leaf nodes"),
fieldWithPath("value").description("Value of the node")),
responseFields(beneathPath("left").withSubsectionId("subtree"),
fieldWithPath("id").description("ID of the node"),
fieldWithPath("type").description("Type of the node. Always 'subtree' for nodes with children"),
subsectionWithPath("left").description("Left-hand child node. Either a subtree or a leaf"),
subsectionWithPath("right").description("Right-hand child node. Either a subtree or a leaf"))
Использование subsectionWithPath
при документировании узла поддерева позволяет вам покрыть все поддерево одним дескриптором. Описание информирует пользователя о том, что значения left
и right
будут узлом, который является либо листом, либо другим поддеревом.