To manage tags for a node, use the TagsApi and the following methods:
Method | Description |
---|---|
createTagForNode | Create a tag for a node |
deleteTagFromNode | Delete a tag from a node |
getTag | Get a tag |
listTags | List tags |
listTagsForNode | List tags for a node |
updateTag | Update a tag |
For more information about this ReST API endpoint, see Manage Tags for a Folder or File.
For a description of the common parameters, such as include, see Common Parameters.
import org.alfresco.core.handler.TagsApi; import org.alfresco.core.model.*; 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.ArrayList; import java.util.List; @Component public class ManageTagsCmd { static final Logger LOGGER = LoggerFactory.getLogger(ManageTagsCmd.class); private Integer skipCount = 0; private Integer maxItems = 100; private List<String> fields = null; private List<String> include = new ArrayList<>(); // Include an extra field with tag count public ManageTagsCmd() { include.add("count"); } @Autowired TagsApi tagsApi; public void execute(String nodeId) throws IOException { Tag firstTag = createTag(nodeId, "tag-one"); Tag secondTag = createTag(nodeId, "tag-two"); LOGGER.info("Listing tags for the whole repository: "); TagPagingList repoTags = tagsApi.listTags(skipCount, maxItems, fields, include).getBody().getList(); for (TagEntry repoTagEntry: repoTags.getEntries()) { LOGGER.info(" {} count: {}", repoTagEntry.getEntry().getTag(), repoTagEntry.getEntry().getCount()); } LOGGER.info("Listing tags for node: {}", nodeId); TagPagingList nodeTags = tagsApi.listTagsForNode(nodeId, skipCount, maxItems, fields).getBody().getList(); for (TagEntry nodeTagEntry: nodeTags.getEntries()) { LOGGER.info(" {}", nodeTagEntry.getEntry()); } } private Tag createTag(String nodeId, String text) { TagBody tagBody = new TagBody(); tagBody.setTag(text); Tag tag = tagsApi.createTagForNode(nodeId, tagBody, fields).getBody().getEntry(); LOGGER.info("Created Tag {}", tag); return tag; } }
Executing the code gives a log like follows:
% java -jar target/rest-api-0.0.1-SNAPSHOT.jar manage-tags 0492460b-6269-4ca1-9668-0d934d2f3370 2021-05-04 09:56:25.846 INFO 27655 --- [ main] o.a.tutorial.restapi.RestApiApplication : Started RestApiApplication in 2.884 seconds (JVM running for 3.333) 2021-05-04 09:56:25.848 INFO 27655 --- [ main] o.a.tutorial.restapi.RestApiApplication : args[0]: manage-tags 2021-05-04 09:56:25.849 INFO 27655 --- [ main] o.a.tutorial.restapi.RestApiApplication : args[1]: 0492460b-6269-4ca1-9668-0d934d2f3370 2021-05-04 09:56:26.073 INFO 27655 --- [ main] o.a.tutorial.restapi.ManageTagsCmd : Created Tag class Tag { id: a6da6c4d-cb6b-41b5-a010-7188459dd3cb tag: tag-one count: null } 2021-05-04 09:56:26.175 INFO 27655 --- [ main] o.a.tutorial.restapi.ManageTagsCmd : Created Tag class Tag { id: 9a9044c9-3787-44ca-bd92-c6797c9a82ae tag: tag-two count: null } 2021-05-04 09:56:26.175 INFO 27655 --- [ main] o.a.tutorial.restapi.ManageTagsCmd : Listing tags for the whole repository: 2021-05-04 09:56:26.288 INFO 27655 --- [ main] o.a.tutorial.restapi.ManageTagsCmd : activiti count: 3 2021-05-04 09:56:26.288 INFO 27655 --- [ main] o.a.tutorial.restapi.ManageTagsCmd : aps count: 1 2021-05-04 09:56:26.288 INFO 27655 --- [ main] o.a.tutorial.restapi.ManageTagsCmd : tag-one count: null 2021-05-04 09:56:26.288 INFO 27655 --- [ main] o.a.tutorial.restapi.ManageTagsCmd : tag-two count: null 2021-05-04 09:56:26.288 INFO 27655 --- [ main] o.a.tutorial.restapi.ManageTagsCmd : white-paper count: 2 2021-05-04 09:56:26.288 INFO 27655 --- [ main] o.a.tutorial.restapi.ManageTagsCmd : Listing tags for node: 0492460b-6269-4ca1-9668-0d934d2f3370 2021-05-04 09:56:26.310 INFO 27655 --- [ main] o.a.tutorial.restapi.ManageTagsCmd : class Tag { id: a6da6c4d-cb6b-41b5-a010-7188459dd3cb tag: tag-one count: null } 2021-05-04 09:56:26.310 INFO 27655 --- [ main] o.a.tutorial.restapi.ManageTagsCmd : class Tag { id: 9a9044c9-3787-44ca-bd92-c6797c9a82ae tag: tag-two count: null }
Note that the tag count are not available directly after you have created the tag. It has to be indexed first.