如何记录递归数据结构以响应 Spring REST Docs
How to document recursive data structures in response with Spring REST Docs
我有一个关于 Spring Restdocs 的问题。其余调用之一我想记录 returns 一个递归数据结构,具有不同类型 children:叶和子树。叶子和子树具有不同的属性。例如:
{
"id": "$",
"left": {
"id": "l",
"left": {
"id": "l1",
"type": "leaf",
"value": "Leaf 1"
},
"right": {
"id": "l2",
"type": "leaf",
"value": "Leaf 2"
},
"type": "subtree"
},
"right": {
"id": "l3",
"type": "leaf",
"value": "Leaf 3"
},
"type": "subtree"
}
我找不到如何使用 Spring Restdocs 记录那些递归数据结构。
有没有人有一些例子或可以帮助我。
我已经设置了一个 git 存储库,其中包含一些显示我的问题的代码:
https://github.com/dibog/spring-restdocs-recursive-demo
此致,
迪特
这完全取决于您要记录的内容以及您要如何向用户描述内容。我会专注于两种不同类型的节点——子树和叶子——并提供描述它们格式的文档,并且树中的每个节点要么是叶子,要么是子树。
您可以使用 REST Docs 通过响应字段片段记录两种不同节点类型的结构,重点关注响应的特定部分:
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
的值将是一个节点,该节点可以是叶节点,也可以是另一个子树。
我有一个关于 Spring Restdocs 的问题。其余调用之一我想记录 returns 一个递归数据结构,具有不同类型 children:叶和子树。叶子和子树具有不同的属性。例如:
{
"id": "$",
"left": {
"id": "l",
"left": {
"id": "l1",
"type": "leaf",
"value": "Leaf 1"
},
"right": {
"id": "l2",
"type": "leaf",
"value": "Leaf 2"
},
"type": "subtree"
},
"right": {
"id": "l3",
"type": "leaf",
"value": "Leaf 3"
},
"type": "subtree"
}
我找不到如何使用 Spring Restdocs 记录那些递归数据结构。 有没有人有一些例子或可以帮助我。
我已经设置了一个 git 存储库,其中包含一些显示我的问题的代码: https://github.com/dibog/spring-restdocs-recursive-demo
此致, 迪特
这完全取决于您要记录的内容以及您要如何向用户描述内容。我会专注于两种不同类型的节点——子树和叶子——并提供描述它们格式的文档,并且树中的每个节点要么是叶子,要么是子树。
您可以使用 REST Docs 通过响应字段片段记录两种不同节点类型的结构,重点关注响应的特定部分:
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
的值将是一个节点,该节点可以是叶节点,也可以是另一个子树。