UNPKG

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
# 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/)