我有父节点的webroot路径,并希望返回此节点的子节点。 例如,使用https://demo.getmesh.io/api/v1/demo/webroot/images/只会产生节点本身。
答案 0 :(得分:4)
不幸的是,只有webroot这样做是不可能的。但是,还有其他方法可以实现它:
使用此查询使用GraphQL-Enpoint,例如:
query childrenByWebroot($path: String) {
node(path: $path) {
uuid
children {
elements {
uuid
}
}
}
}
这将只加载子项和父项的所有UUID。有关更多功能,请查看Docs of GraphQL以获取更多信息。
首先从webroot加载节点,然后通过Children-Endpoint加载孩子:/api/v1/<project>/nodes/<uuid>/children
Search for Nodes,其中webroot-element为父级。这使您可以在需要时更清楚地过滤内容:
{
"query": {
"bool": {
"must": [
{
"term": {
"parentNode.uuid": "<uuid>"
},
// ... Other checks
}
]
}
}
}
答案 1 :(得分:3)
目前无法使用单个请求通过REST加载节点的子节点。但是,您可以加载路径的节点。使用该节点的uuid并通过/api/v1/:projectName/nodes/:nodeUuid/children
加载子节点然而,更优雅的方法是使用以下graphql查询。我强烈推荐这个选项,因为它在处理大型数据集时更有效。
背景:计算totalCount
/ totalPage
尺寸代价很高,您可以使用hasPreviousPage
和hasNextPage
来避免这种情况。
您可以使用以下graphql query:
query ($path: String) {
node(path: $path) {
children(perPage: 5) {
hasNextPage
hasPreviousPage
currentPage
elements {
uuid
fields {
... on vehicleImage {
name
}
}
}
}
}
}
查询变量:
{
"path": "/images"
}