To get metadata for a node, such as a file or folder, in the repository use the getNode method of the NodesApi , which is one of the main APIs used when you want to manipulate folders and files.
For more information about this ReST API endpoint, see Get Folder/File Metadata.
For a description of the common parameters, such as include, see Common Parameters.
import org.alfresco.core.handler.NodesApi; import org.alfresco.core.model.NodeEntry; import org.alfresco.core.model.Node; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.io.IOException; import java.util.List; @Component public class GetNodeMetadataCmd { static final Logger LOGGER = LoggerFactory.getLogger(GetNodeMetadataCmd.class); @Autowired NodesApi nodesApi; public void execute() throws IOException { Node node = getNode("-root-", null); Node node2 = getNode("-root-", "/Data Dictionary"); } /** * Get a node (file/folder). * * @param nodeId the id of the node that we want to fetch metadata for. If relativeFolderPath is specified, then metadata for this node will be returned. Besides node ID the aliases -my-, -root- and -shared- are also supported. * @param relativeFolderPath A path relative to the nodeId, if this is not null, then metadata is returned on the node resolved by this path * @return Node object if exist, or null if does not exist */ private Node getNode(String nodeId, String relativeFolderPath) { List<String> include = null; List<String> fields = null; NodeEntry result = nodesApi.getNode(nodeId, include, relativeFolderPath, fields).getBody(); LOGGER.info("Got node {}", result.getEntry()); return result.getEntry(); } }
Executing this code would give the following result:
% java -jar target/rest-api-0.0.1-SNAPSHOT.jar get-node 2021-04-29 08:09:22.215 INFO 18370 --- [ main] o.a.tutorial.restapi.RestApiApplication : Started RestApiApplication in 3.536 seconds (JVM running for 4.449) 2021-04-29 08:09:22.217 INFO 18370 --- [ main] o.a.tutorial.restapi.RestApiApplication : args[0]: get-node 2021-04-29 08:09:22.485 INFO 18370 --- [ main] o.a.tutorial.restapi.GetNodeMetadataCmd : Got node class Node { id: e439190c-3fe0-48a1-8a9a-374fbc54b570 name: Company Home nodeType: cm:folder isFolder: true isFile: false isLocked: false modifiedAt: 2021-04-28T11:48:08.325Z modifiedByUser: class UserInfo { displayName: System id: System } createdAt: 2021-04-28T11:47:59.098Z createdByUser: class UserInfo { displayName: System id: System } parentId: null isLink: null isFavorite: null content: null aspectNames: [cm:titled, cm:auditable, app:uifacets] properties: {cm:title=Company Home, cm:description=The company root space, app:icon=space-icon-default} allowableOperations: null path: null permissions: null definition: null } 2021-04-29 08:09:22.538 INFO 18370 --- [ main] o.a.tutorial.restapi.GetNodeMetadataCmd : Got node class Node { id: 1219e0ff-941f-49df-9151-997b84a8359b name: Data Dictionary nodeType: cm:folder isFolder: true isFile: false isLocked: false modifiedAt: 2021-04-28T11:48:17.700Z modifiedByUser: class UserInfo { displayName: System id: System } createdAt: 2021-04-28T11:47:59.199Z createdByUser: class UserInfo { displayName: System id: System } parentId: e439190c-3fe0-48a1-8a9a-374fbc54b570 isLink: null isFavorite: null content: null aspectNames: [cm:titled, cm:auditable, app:uifacets] properties: {cm:title=Data Dictionary, cm:description=User managed definitions, app:icon=space-icon-default} allowableOperations: null path: null permissions: null definition: null }
See also Working with Relationships between Folders or Files for information on how to list associations for a node.