The “Categories“ are entities that are used to categorise other entities like: Articles/Videos/Galleries.
The “Categories“ support a nested structure, meaning that each category can have a sub-category.
In this tutorial we will be exploring the Category CRUD operations. To better understand the topic, we will go through the following steps:
Components of a Category
Creating a Category
Updating a Category
Deleting a Category
Get a single category
Get list of categories
The category consists of the following fields
{ "id": 0, "title": "string", "description": "string", "main_media": [ { "resource_id": "string", "resource_type": "image", "resource_subtype": "default", "provider": "smp", "description": "string", "data": {} } ], "active": true, "parent_id": "string", "weight": 0, "subs": [ "string" ], "seo": { "slug": "string", "title": "string", "description": "string", "keywords": [ "string" ], "index": true, "follow": true, "redirect_type": "temporary" }, "created_at": "string", "updated_at": "string", "generic": {}, } |
id - Automatically generated by the system.
title - The title of the category.
description - Description for the category.
active - The state of the category: active or inactive. This configuration is used to indicate if the category is active or inactive.
parent_id - The id of the parent category.
weight - Used to indicate the position of the category.
subs - An array containing a list of sub categories (full category objects are returned when requested).
created_at - Date time string, automatically generated by the system when creating a category.
updated_at - Date time string, automatically generated by the system when updating a category.
generic - A generic field which can contain any type of data structure, it is not validated in any way. This field is usually used when a migration is done and data that is not supported by the Content API is needed.
main_media - A field containing data about the asset (Image/Video/Embeded Video) which has been appended to the specified category. The main_media may use one of the following Content entities: Image, Video or an embedded video (not a Content entity).
To create a category the following request must be made:
End-point: /categories Request Type: POST Headers: { "Authorization": "Bearer <your token>", "Project": "<project domain>" } Request body: { "title": "string", //mandatory "description": "string", "active": true, "parent_id": "string", //The id of the parent if this category is a child of another category } |
To update a category the following request must be made:
End-point: /categories/<category id> Request Type: PATCH Headers: { "Authorization": "Bearer <your token>", "Project": "<project domain>" } Request body: { "title": "string", //mandatory "description": "string", "active": true, "parent_id": "string", //The id of the parent if this category is a child of another category } |
To delete a category the following request must be made:
End-point: /categories/<category id> Request Type: DELETE Headers: { "Authorization": "Bearer <your token>", "Project": "<project domain>" } |
To get a category the following request must be made:
End-point: /categories/<category id> Request Type: GET Headers: { "Authorization": "Bearer <your token>", "Project": "<project domain>" } |
To get a list categories the following request must be made:
End-point: /categories Request Type: GET Headers: { "Authorization": "Bearer <your token>", "Project": "<project domain>" } |
The category listing endpoint supports pagination. There are additional parameters that can be used:
limit
Description: Controls how many categories will be returned per page
Values:
Maximum value: 200
Default value: 20
Behaviour: Affects how many pages are generated.
Example: If there are 60 categories and the limit is set to 10, this will generate 6 pages of categories.
Request:
End-point: /categories?limit=10 |
page
Description: Controls which categories page will be retrieved
Values:
Behaviours: Affected by the “limit“ parameter
Request
Without “limit“ parameter
End-point: /categories?page=2 |
With “limit“ parameter
End-point: /categories?limit=10&page=2 |