strapi-v5-plugin-populate-deep
v4.3.2
Published
Strapi v5 plugin that populates nested content.
Downloads
24,976
Readme
strapi-v5-plugin-populate-deep
A Strapi v5 plugin that enables deep population of nested content structures via a simple query parameter.
Installation
npm install strapi-v5-plugin-populate-deep
# or
yarn add strapi-v5-plugin-populate-deepUsage
Add pLevel to any API request to deeply populate the response.
| Parameter | Type | Description |
|-----------|------|-------------|
| pLevel | number (optional) | Depth of population. Omit the value to use the default depth. |
| pIgnore | string or string[] (optional) | Fields or collection names to exclude from population. Accepts a comma-separated string or array. |
Examples
# Use default depth (5)
GET /api/articles?pLevel
# Use custom depth
GET /api/articles?pLevel=10
# Ignore specific fields (comma-separated string)
GET /api/articles?pLevel=5&pIgnore=author,tags
# Ignore specific fields (array syntax)
GET /api/articles?pLevel=5&pIgnore[0]=author&pIgnore[1]=tagsConfiguration
Customize the default depth globally via config/plugins.js (or .ts):
// config/plugins.js
module.exports = ({ env }) => ({
'strapi-v5-plugin-populate-deep': {
config: {
defaultDepth: 3, // default: 5
},
},
});Good to Know
- Default depth is 5 unless configured otherwise.
- Works for all collections and single types (
findOneandfindMany). pIgnoreprevents circular population and can significantly reduce response size and query time.- Increasing depth may result in longer response times — use
pIgnoreto offset this. plugin::upload.filerelated field is always excluded to avoid bloated responses.admin::user(creator fields) can be excluded viaskipCreatorFieldsconfig:
module.exports = ({ env }) => ({
'strapi-v5-plugin-populate-deep': {
config: {
defaultDepth: 5,
skipCreatorFields: true,
},
},
});Contributors
Based on the original work by Barelydead. Original populate concept by tomnovotny7 (thread). Dynamic zone fix by tooonuch.
