strapi-plugin-populate
Version:
A strapi plugin that allow to populate models by query-params and routes.json
75 lines (52 loc) β’ 2.12 kB
Markdown
# strapi-plugin-populate
## π _Overview_
This plugin implements a simple way to populate data relations from the strapi through http requests preventing the needed to create a new controller just to implement this necessity.
**THIS PLUGIN WAS IMPLEMENTED BASED ON STRAPI V3.1.3 AND WAS NOT TESTED FOR OTHER VERSIONS!!!**
## β³ _Installation_
With npm:
```bash
npm install strapi-plugin-populate
```
With yarn:
```bash
yarn add strapi-plugin-populate
```
### β¨ _**POPULATE** Feature_
Now you can pass another type of filter in your query parameters, `_populate`, allowing you to select which field you want to populate from the API.
```bash
GET http://localhost:1337/articles?_populate=author,author.picture
```
Also you can pass it configured in your routes as a `populate` config option, populating the selected fields mandatorily:
```json
{
"routes": [
{
"method": "GET",
"path": "/articles",
"handler": "Article.find",
"config": {
"policies": [],
"populate": ["author", "author.picture"]
}
}
]
}
```
_If you want to avoid default first level populating from strapi core, you can set a `_populate` for an unexistent model relation, like `null`:_
```bash
GET http://localhost:1337/articles?_populate=null
```
_It will return your data with no populate for default first level relations, preventing data overfetchings._
## β _Cautions_
This plugin overrides the strapi core crontroller creator for content-types, and disable the `find` and `findOne` custom functions on your api controllers, so if you want to customize the `find` or `findOne` controller, please create a function with a different name for your self purposes.
## π _Congradulations, You're done._
I hope this plugin helps you in your strapi projects and save a lot of time and code.
## π _License_
This project is under the MIT license. See the [LICENSE](./LICENSE) for details.
π» Developed by AndrΓ© Ciornavei - [Get in touch!](https://www.linkedin.com/in/andreciornavei/)