In this application you will see how to
- Use filters with routes generated by the Content Type Builder
- Create custom routes / controllers / services.
- Use groups and authentication permissions
1 — Clone the repository.
git clone git@github.com:strapi/strapi-examples.git
2 — Go to the cheesecakes
example and install the dependencies.
cd cheesecakes
npm install
npm run setup --plugins
# It take few minutes
3 — Install MongoDB.
4 — Start a MongoDB server.
mongod
5 — Start the cheesecakes server.
npm start
4 — Update permissions.
You have to go in your admin panel and update permission of the Public
role (Plugins > Users & Permissions > Public).
Allow these actions:
- App:
- Info
- Cake:
- Count
- Find
- FindOne
- Category:
- Find
- FindOne
- Review:
- Submit
- Find
- FindOne
When you start your application for the first time, if you don't have any data, we auto inject a dataset in your mongo database.
You can see how we did it in the /config/function/bootstrap.js
file. It calls the initDatabase
function of the /api/app/service/App.js
service's file. The dataset is in /api/app/config/data.json
.
When you are at http://localhost:1337
, Strapi renders the /public/index.html
file. In this file we inject /public/css/style.css
and /public/scripts/index.js
.
When you click on a cheesecake item, Strapi renders public/product.html
. Documentation link https://strapi.io/documentation/guides/public-assets.html.
In the /public/scripts/index.js
you will see how to make a GET request using filter params on cakes.
API endpoints are located at /api/cake/config/routes.json
. Documentation link https://strapi.io/documentation/guides/filters.html.
To apply the logged user as the author of the review we have to custom the back-e,d part, we created a /reviews/submit
route.
In the controller function we get the user id from the session and apply the value to the review object.
In public/product.html
page we add login / register function to be able to submit a review. At the end of the /public/scripts/product.js
file you will see how use auth routes. Documentation link https://strapi.io/documentation/guides/authentification.html.
In the admin panel (http://localhost:1337/admin
) you will be able to manage (create/update/delete) cakes.