all remaining section except section 6 - adding content - is now complete with pictures
|
After Width: | Height: | Size: 1007 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 892 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 1019 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 844 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 1022 KiB |
|
After Width: | Height: | Size: 1024 KiB |
|
After Width: | Height: | Size: 880 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 820 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 882 KiB |
|
After Width: | Height: | Size: 887 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 906 KiB |
|
After Width: | Height: | Size: 841 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 992 KiB |
|
After Width: | Height: | Size: 802 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 850 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 939 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 1016 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 963 KiB |
|
After Width: | Height: | Size: 1015 KiB |
|
After Width: | Height: | Size: 899 KiB |
|
After Width: | Height: | Size: 833 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
@ -1,6 +1,6 @@
|
||||
# Tutorial
|
||||
|
||||
This Tutorial is written for developers who prefer a more detailed step-by-step introduction. (A less detailed version can be found at [Quick Start Guide](/3.0.0-beta.x/getting-started/quick-start.html).) This tutorial will take you through the beginning steps of how you could start a project like **"FoodAdvisor"** ([Github](https://github.com/strapi/foodadvisor/))([Demo](https://foodadvisor.strapi.io/)). You will get a good overview of many of the features that developers love about using Strapi.
|
||||
This **tutorial** is written for developers to **teach and explain** the step-by-step introduction to Strapi. (A more concise **How-to** version can be found in the [Quick Start Guide](/3.0.0-beta.x/getting-started/quick-start.html).) This tutorial will take you through the beginning steps of how you start a project like **"FoodAdvisor"** ([Github](https://github.com/strapi/foodadvisor/))([Demo](https://foodadvisor.strapi.io/)). You will get a good overview of the features developers love about using Strapi.
|
||||
|
||||
**[TODO: Create NEW Video]**
|
||||
|
||||
@ -33,7 +33,7 @@ Use **only one** of the following commands to create a new Strapi project:
|
||||
|
||||
---
|
||||
|
||||
- (Using **yarn** to install the Strapi project (**recommended**). [Install yarn with these docs](https://yarnpkg.com/lang/en/docs/install/).)
|
||||
- (Use **yarn** to install the Strapi project (**recommended**). [Install yarn with these docs](https://yarnpkg.com/lang/en/docs/install/).)
|
||||
|
||||
```bash
|
||||
yarn create strapi-app my-project --quickstart
|
||||
@ -41,7 +41,7 @@ yarn create strapi-app my-project --quickstart
|
||||
|
||||
**or**
|
||||
|
||||
- (Using **npm/npx** to install the Strapi project.)
|
||||
- (Use **npm/npx** to install the Strapi project.)
|
||||
|
||||
```bash
|
||||
npx create-strapi-app my-project --quickstart
|
||||
@ -53,16 +53,16 @@ The command will create a Strapi project `my-project/` folder within your parent
|
||||
|
||||
::: tip NOTE
|
||||
|
||||
When you create a new Quick Start(`--quickstart`) project, Strapi will download the node modules and the Strapi files needed. Using `--quickstart`, automatically completes an additional step of building the administration panel for Strapi and then starting Strapi for you.
|
||||
When you create a new Quick Start(`--quickstart`) project, Strapi will download the node modules and the Strapi files needed. Using `--quickstart`, automatically completes an **additional** step of **building the administration panel** for Strapi and then **starting** Strapi for you.
|
||||
|
||||
:::
|
||||
|
||||
::: tip NOTE
|
||||
You can replace the `my-project` name with any name you want. E.g. `strapi new my-foodadvisor-project --quickstart`, will create a folder `./Projects/my-foodadvisor-project`.
|
||||
You can replace the `my-project` name with any name you want. E.g. `yarn create strapi-app my-foodadvisor-project --quickstart`, will create a folder `./Projects/my-foodadvisor-project`.
|
||||
|
||||
:::
|
||||
|
||||
You will see something like this, indicating your Strapi project is being downloaded and installed.
|
||||
You will see something like this. This indicates your Strapi project is being downloaded and installed.
|
||||
|
||||
```bash
|
||||
yarn create v1.17.3
|
||||
@ -134,7 +134,9 @@ Building your admin UI with development configuration ...
|
||||
::: tip NOTE
|
||||
Using the `--quickstart` flag will install Strapi using a [SQLite](https://www.sqlite.org/index.html) database. You may always leave off the **--flag**, but you will simply need to follow a few configuration steps for a your database. **You will need to have your database choice installed and running locally, prior to creating your project.**
|
||||
|
||||
**Note:** An **SQLite** database is an excellent database to use for prototyping and _developing_ Strapi projects. **SQLite**å is a light database that ports effortlessly to the other relational databases that Strapi supports (**MySQL**, **PostgreSQL** and **MariaDB**). However, if you would like to use **MongoDB** in production, you will need to [install, run and use MongoDB on your development machine](/3.0.0-beta.x/guides/databases.html#mongodb-installation).
|
||||
**Note:** An **SQLite** database is an excellent database to use for prototyping and _developing_ Strapi projects. **SQLite** is a light database that ports effortlessly to the other relational databases (**MySQL**, **PostgreSQL** and **MariaDB**). It is recommended to **develop** with SQLite and to use another relational database (MySQL, PostgreSQL or MariaDB) in production.
|
||||
|
||||
**Note:** If you would like to use **MongoDB** in production, you will need to [install, run and use MongoDB on your development machine](/3.0.0-beta.x/guides/databases.html#mongodb-installation).
|
||||
:::
|
||||
|
||||
You are now ready to create a new **Administrator** and new front-end **User**.
|
||||
@ -153,15 +155,15 @@ The first step is to create an **Administrator** (or "root user") for your proje
|
||||
|
||||
After your **Administrator** registration is complete, you will see the Strapi _Administration Dashboard_:
|
||||
|
||||
**[TODO: Add an image showing Adminstration Dashboard]**
|
||||

|
||||
|
||||
**Administrators** and front-end **Users** are separate roles.
|
||||
|
||||
**A.** An **Administrator** has access and rights to the Administration Dashboard (or backend) of Strapi. **Administrators** have the ability to add content, add plugins, upload images, etc. An **Adminstrator** does **not** author or have any relation to actual content.
|
||||
**A.** An **Administrator** has access and rights to the Administration Dashboard (or backend) of Strapi. **Administrators** have the ability to add content, add plugins, upload images, etc.
|
||||
|
||||
**B.** A front-end **User** is someone who interacts with your project through the front-end. A front-end **User** is someone who authors an article, makes a purchase, has an account, leaves a review, leaves a comment, etc.
|
||||
**B.** A front-end **User** is someone who interacts with your project through the front-end. A front-end **User** is someone who is the "Author" of an article, makes a purchase, has an account, leaves a review, leaves a comment, etc.
|
||||
|
||||
At this point, you have created an **Administrator**, now you will want to create a front-end **User**.
|
||||
Up until this point, you have created an **Administrator**, now you will want to create a front-end **User**.
|
||||
|
||||
- Click on `Users` located under **CONTENT TYPES** in the left-hand menu
|
||||
- Click the blue **+ Add New User** button in the top right corner
|
||||
@ -170,7 +172,7 @@ At this point, you have created an **Administrator**, now you will want to creat
|
||||
- To the right, under **Role**, select `Authenticated`
|
||||
- Save the new user by clicked the blue **Save** button (top right)
|
||||
|
||||
**[TODO: Add an image showing entered user]**
|
||||

|
||||
|
||||
You are now ready to create your first **Content Type**.
|
||||
|
||||
@ -178,7 +180,9 @@ You are now ready to create your first **Content Type**.
|
||||
|
||||
**Content Types** are a collection of entered data represented by fields. For example, a **Content Type** called `restaurant` may be intended to display information regarding restaurants. A `restaurant` **Content Type** could have fields that includes a `name`, a main `image`, and a `description` - _at a minimum_. But a `restaurant` could also have a `category` or mulitple `categories`, and a `restaurant` could perhaps need to show `hoursOfOperation`.
|
||||
|
||||
The next section of this tutorial will guide you through each of the steps needed for each of these **Content Type** fields.
|
||||
A **Content Type** forms your data structure.
|
||||
|
||||
The next section of this tutorial will guide you through each of the steps needed for each of these above **Content Type** fields.
|
||||
|
||||
::: tip NOTE
|
||||
|
||||
@ -186,21 +190,23 @@ Additional **Restaurant** themed **Content Types** can be seen in the [FoodAdvis
|
||||
|
||||
:::
|
||||
|
||||
At this point, the only Content Type available is `Users`. You need to create a new **Content Type** for `Restaurants`.
|
||||
|
||||
### The Restaurant Content Type
|
||||
|
||||
Go to the **Content Type Builder** plugin, located in the left menu: **PLUGINS** --> **Content Type Builder**.
|
||||
At this point, three Content Types are available `Permission`, `Role`, and `Users`.
|
||||
|
||||
**[TODO: Add an image of the Add Content Type dashboard]**
|
||||
Go to the **Content Type Builder** plugin, located in the left menu: **PLUGINS** --> **Content Type Builder**. You are now able to see the three available **Content Types**.
|
||||
|
||||
1. Complete these steps to **Create a Content Type**:
|
||||

|
||||
|
||||
- Click the `+ Create a Content Type` button to add a new **Content Type**
|
||||
You will need to create a new **Content Type** for `Restaurants`.
|
||||
|
||||
1. Complete these steps to **Add a Content Type**:
|
||||
|
||||
- Click the `+ Add a Content Type` button
|
||||
- Enter a **Name** for your new **Content Type** (call this `restaurant`), and you can write `Restaurant Listings` for the **Description**.
|
||||
- Click the `Done` button
|
||||
|
||||
**[TODO: Add an image of the entry form showing a singular NAME]**
|
||||

|
||||
|
||||
::: tip NOTE
|
||||
|
||||
@ -208,61 +214,63 @@ The Content Type **Name** is always **singular**. For example, `restaurant` not
|
||||
|
||||
:::
|
||||
|
||||
2. You are now at the field selection panel for adding fields to your **Restaurant Content Type**:
|
||||
2. You are now at the **Field Selection** panel:
|
||||
|
||||
You are now ready to add your first field, a **String** field for the **Restaurant** name.
|
||||
|
||||
**[TODO: Add an image of Add New Field form]**
|
||||

|
||||
|
||||
- Click on the `String` field
|
||||
- In the **Name** field, type `Restaurant`. This will be the name of the restaurant.
|
||||
|
||||
**[TODO: Add an image of Input String Field image]**
|
||||

|
||||
|
||||
- Click on the `ADVANCED SETTINGS` tab
|
||||
- Check the `Required field` checkbox
|
||||
- Check the `Unique field` checkbox
|
||||
- Click the `Add Another Field` button
|
||||
|
||||
**[TODO: Add an image of Input String ADVANCED SETTINGS]**
|
||||

|
||||
|
||||
- Click the `+ Add Another Field` button
|
||||
|
||||
You are now ready to add the second field, a **Rich Text** field for the **Restaurant** description.
|
||||
|
||||
**[TODO: Add an image of the added Name field and to add a new RICH TEXT field]**
|
||||

|
||||
|
||||
- Click the `Rich Text` field
|
||||
|
||||
**[TODO: Add an image of the add a new RICH TEXT field dialog box of fields]**
|
||||
|
||||
- In the **Name** field, type `Description`. This will be the description of the **Restaurant**.
|
||||
- Click the `Add Another Field` button
|
||||
|
||||
**[TODO: Add an image of the add a new TEXT field to add DESCRIPTION]**
|
||||

|
||||
|
||||
- Click the `+ Add Another Field` button
|
||||
|
||||
You are now ready to add the third field, a **Media** field for the **Restaurant** thumbnail image.
|
||||
|
||||
**[TODO: Add an image of the added Name field and to add a new MEDIA field]**
|
||||

|
||||
|
||||
- Click the `Media` field
|
||||
|
||||
**[TODO: Add an image of the add a new MEDIA field dialog box of fields]**
|
||||
|
||||
- In the **Name** field, type `Image`
|
||||
|
||||

|
||||
|
||||
- Click on the **ADVANCED SETTINGS** tab
|
||||
- Check the `Required field` checkbox
|
||||
- Click the `Done` button
|
||||
|
||||
**[TODO: Add an image of the add a new TEXT field to add DESCRIPTION]**
|
||||

|
||||
|
||||
- Click the `Done` button
|
||||
|
||||
Your new Content Type called **Restaurant** is ready to be `Saved`.
|
||||
|
||||
- Click the `Save` button
|
||||

|
||||
|
||||
**[TODO: Add an image of Save Restaurant Image]**
|
||||
- Click the `Save` button
|
||||
|
||||
- Wait for Strapi to restart
|
||||
|
||||
**[TODO: Add an image of the SAVING OF STRAPI wait]**
|
||||

|
||||
|
||||
After Strapi has restarted, you are ready continue to create the `Category` **Content Type**.
|
||||
|
||||
@ -272,106 +280,272 @@ After Strapi has restarted, you are ready continue to create the `Category` **Co
|
||||
|
||||
(The `category` **Content Type** will have a **String** field named `category`, and a **Relation field** with a **Many to Many** relationship.)
|
||||
|
||||
**[TODO: Add an image of the Add Content Type Menu Item]**
|
||||

|
||||
|
||||
1. Complete these steps to **add a new Content Type**:
|
||||
|
||||
- Click the `+ Add Content Type` button to add a new **Content Type**.
|
||||
- Click the `+ Add Content Type` link to add a new **Content Type**.
|
||||
- Enter a **Name** for your new **Content Type** (call this `category`), and you can write `Restaurant Categories` for the **Description**.
|
||||
|
||||

|
||||
|
||||
- Click the `Done` button.
|
||||
|
||||
**[TODO: Add an image of the Category Content Type Name and Description]\***
|
||||
2. Now, you are ready to add fields to your **Category**:
|
||||
|
||||
2. Now, you are ready to add the **Content Type** fields:
|
||||
|
||||
[TODO: Add an image of Add New Field form for Category]
|
||||
|
||||
You are now at the screen to add fields for your **Category Content Type**.
|
||||

|
||||
|
||||
- Click on the `String` field.
|
||||
- In the **Name** field, type `Category`. This will be the name of the category.
|
||||
|
||||
[TODO: Add an image of Input String Field image for category]
|
||||

|
||||
|
||||
- Click on the `ADVANCED SETTINGS` tab
|
||||
- Check the `Required field` checkbox
|
||||
- Check the `Unique field` checkbox
|
||||
- Click the `Add Another Field` button
|
||||
|
||||
[TODO: Add an image of Input String ADVANCED SETTINGS]
|
||||

|
||||
|
||||
- Click the `+ Add Another Field` button
|
||||
|
||||
You are now ready to add the second field, a **Relation** field for creating a **Many to Many** relationship between the **Category** and **Restaurant** Content Types.
|
||||
|
||||
[TODO: Add an image of the added Name field and to add a new Relation field]
|
||||
|
||||
- Click on the `Relation` field.
|
||||
|
||||
[TODO: Add an image of the add a new TCategory Click Relation Field]
|
||||

|
||||
|
||||
This will bring you to the **Add New Relation** screen.
|
||||
|
||||
[TODO: Add an image of the add a new Add new Relation Field screen]
|
||||

|
||||
|
||||
- Click on _right dropdown_ with `Permission (Users-Permissions)` and change it to `Restaurant`.
|
||||
|
||||
[TODO: Add an image of the add a new Change Permission to Restaurant]
|
||||

|
||||
|
||||
- Click the `Many to Many` icon (from the middle icon choices). It should now read, **"Categories has and belongs to many Restaurants"**.
|
||||
|
||||
- Click the `Done` button.
|
||||
|
||||
[TODO: Add an image of the add a new Category Has Many To Many Relation]
|
||||

|
||||
|
||||
- Click the `Save` button.
|
||||
|
||||
[TODO: Add an image of the add Now Save Category]
|
||||

|
||||
|
||||
- Wait for Strapi to restart.
|
||||
|
||||
[TODO: Add an image of the waiting to finish saving]
|
||||

|
||||
|
||||
After Strapi has restarted, you are ready continue to create a `Group and Repeatable Field` called, **"Hours of Operations"**.
|
||||
After Strapi has restarted, you are ready to create a `Group and Repeatable Field` called, **"Hours of Operations"**.
|
||||
|
||||
## 5. Create a new Group and Repeatable Field called, "Hours of Operations"
|
||||
## 5. Create a new Group and Repeatable Field called, "Hours of Operation"
|
||||
|
||||
### The Hours of Operation Group
|
||||
|
||||
( The `Restaurant` Content Type will have a **Group** field named `Hoursofoperation`. This Group will be repeatable for displaying the **Opening hours** and **Closing Hours** of a **Restaurant**.)
|
||||
|
||||
1. Complete these steps to **add a new Group**:
|
||||
|
||||
- Click the `+ Add A Group` link to add a new **Group**.
|
||||
- Enter a **Name** for your new **Group** (call this `hoursofoperation`), and you can write `Restaurant Hours of Operation` for the **Description**.
|
||||
|
||||

|
||||
|
||||
- Click the `Done` button
|
||||
|
||||
2. Now, you are ready to add fields to your **Group**:
|
||||
|
||||

|
||||
|
||||
- Click on the `String` field
|
||||
- In the **Name** field, type `day_interval`. The will be to enter the **Day (or Days)** with **Hours**.
|
||||
|
||||

|
||||
|
||||
- Click on the `ADVANCED SETTINGS` tab
|
||||
- Check the `Required field` checkbox
|
||||
|
||||

|
||||
|
||||
- Click the `+ Add Another Field`
|
||||
|
||||
You are now ready to add a second field, another **String** field for the **Opening Hours**.
|
||||
|
||||

|
||||
|
||||
- Click on the `String` field
|
||||
- In the **Name** field, type `opening_hours`. This will be the time the **Restaurant** opens.
|
||||
|
||||

|
||||
|
||||
- Click the `+ Add Another Field` button
|
||||
|
||||
You are now ready to add a third field, another **String** field for the **Closing Hours**.
|
||||
|
||||

|
||||
|
||||
- Click on the `String` field
|
||||
- In the **Name** field, type `closing_hours`. This will be the time the **Restaurant** opens.
|
||||
- Click the `Done` button.
|
||||
|
||||

|
||||
|
||||
- Click the `Save` button.
|
||||
|
||||

|
||||
|
||||
- Wait for Strapi to restart.
|
||||
|
||||

|
||||
|
||||
After Strapi has restarted, you are ready to assign this **Hoursofoperation** Group to the **Restaurant** Content Type.
|
||||
|
||||
3. Next, you need to assign the **Hoursofoperation** Group to the **Restaurant** Content Type.
|
||||
|
||||
In order to access the **Hoursofoperation** Group from within the **Restaurant** Content Type, you need to **edit** the **Restaurant** Content Type in the **Content Type Builder**.
|
||||
|
||||
- Click on the `Restaurant` Content Type, under **CONTENT TYPES** in the **Content Type Builder**.
|
||||
|
||||

|
||||
|
||||
- Click the `+ Add Another Field` button, to add the **Group**.
|
||||
|
||||

|
||||
|
||||
- Click on the `Group` field
|
||||
|
||||

|
||||
|
||||
- Ensure `hoursofoperation` is displayed in the **Select a group** dropdown.
|
||||
- Provide a **name** for this group in the **Restaurant** Content Type. E.g. `RestaurantHours`
|
||||
- Check the `Repeatable field` box
|
||||
|
||||

|
||||
|
||||
- Click on the `ADVANCED SETTINGS` tab
|
||||
- Check the `Required field` checkbox
|
||||
- Click the `Done` button
|
||||
|
||||

|
||||
|
||||
- Click the `Save` button
|
||||
|
||||

|
||||
|
||||
- Wait for Strapi to restart.
|
||||
|
||||

|
||||
|
||||
After Strapi has restarted, you are ready to continue to the next section where you will customize the user-interface your **Restaurant** Content Type.
|
||||
|
||||
4. Next you will edit the **View Settings** for the new **Hoursofoperation** Group from within the **Content Manager**.
|
||||
|
||||
You have the ability to _drag and drop_ fields into a different layout, as well as, _rename the labels_ as two examples of how you can customize the user interface for your **Content Types**.
|
||||
|
||||
- Click on the `Content Manager`, under **PLUGINS** in the left-hand menu
|
||||
|
||||

|
||||
|
||||
- Click on the `Groups(1)` tab
|
||||
|
||||

|
||||
|
||||
- Click on `Hoursofoperation` to modify the **View Settings**
|
||||
|
||||

|
||||
|
||||
- Grab the `opening_hours` and slide it next to `closing_hour`. This will rearrange the fields and make them more user friendly.
|
||||
|
||||

|
||||
|
||||
Next, you will change the **field labels** to make them easier to understand:
|
||||
|
||||
- Click on the `day_interval` field
|
||||
- Edit the **Label** to read, `Day (or Days)`
|
||||
- Add a **Description**, `You can type in one day or a series of days to complete this field. E.g. "Tuesday" or "Tues - Wed"`.
|
||||
|
||||

|
||||
|
||||
- Click on the `opening_hour` field
|
||||
- Edit the **Label** to read, `Opening Hours`
|
||||
|
||||

|
||||
|
||||
- Click on `closing_hour` field
|
||||
- Edit the **Label** to read, `Closing Hours`
|
||||
|
||||

|
||||
|
||||
- Click the `Save` button, and then the `Confirm` button to save your settings.
|
||||
|
||||
Your settings have now been saved. You are ready to start inputting actual content.
|
||||
|
||||
## 6. Manage and add content to, "Restaurant" Content Type
|
||||
|
||||
### Files structure
|
||||
|
||||
A new directory has been created in the `./Projects/my-project/` folder of your application which contains all the needed files related to your `restaurant` and `category` Content Types. (You may take a look at the [API structure documentation](../concepts/concepts.md#files-structure) for more information.)
|
||||
|
||||
## 7. Set Roles and Permissions
|
||||
|
||||
By default, Strapi publishes all **Content Types** with restricted permissions. Which means you have to explicitly give permissions to each **Content Type** you create. You are going to give **Public** API (or URL) access to both the **Restaurant** Content Type and **Category** Content Type.
|
||||
|
||||
- Click on the `Roles & Permissions` menu item, under **PLUGINS** in the left-hand-menu.
|
||||
Locate and click on the **Roles & Permissions** menu item under **PLUGINS** on the left menu.
|
||||
|
||||

|
||||
|
||||
- Next, click on the **Public** Role.
|
||||
|
||||

|
||||
|
||||
- From here, scroll down to under **Permissions** and locate the **Restaurant** and **Category** Content Types
|
||||
- Click the checkbox for **find** and **findone** in the **Restaurant** Content Type.
|
||||
- Click the checkbox for **find** and **findone** in the **Category** Content Type.
|
||||
|
||||

|
||||
|
||||
- Scroll back to the top, and click the **Save** button.
|
||||
|
||||

|
||||
|
||||
You have now opened the API and are ready to consume your content.
|
||||
|
||||
## 8. Consume the Content Type API
|
||||
|
||||
Strapi is now installed globally on your computer. Type `strapi -h` in your command line to access available Strapi commands.
|
||||
Each of your **Content Types** are accessible by following their automatically generated routes.
|
||||
|
||||
```bash
|
||||
strapi -h
|
||||
Both your **Restaurant** and **Category** Content Types can now be accessed:
|
||||
|
||||
## You will get the following available commands
|
||||
Usage: strapi [options] [command]
|
||||
- In your browser, follow `http://localhost:1337/restaurants` to return the data for the allowed **Find** value for your **Restaurant** Content Type.
|
||||
|
||||
Options:
|
||||
-v, --version output the version number
|
||||
-h, --help output usage information
|
||||
** TO DO ADD PHOTO **
|
||||
|
||||
Commands:
|
||||
version output your version of Strapi
|
||||
console open the Strapi framework console
|
||||
new [options] [name] create a new application
|
||||
start Start your Strapi application
|
||||
develop|dev [options] Start your Strapi application in development mode
|
||||
generate:api [options] <id> [attributes...] generate a basic API
|
||||
generate:controller [options] <id> generate a controller for an API
|
||||
generate:model [options] <id> [attributes...] generate a model for an API
|
||||
generate:policy [options] <id> generate a policy for an API
|
||||
generate:service [options] <id> generate a service for an API
|
||||
generate:plugin [options] <id> generate a basic plugin
|
||||
build Builds the strapi admin app
|
||||
install [plugins...] install a Strapi plugin
|
||||
uninstall [options] [plugins...] uninstall a Strapi plugin
|
||||
help output the help
|
||||
```
|
||||
- In your browser, follow `http://localhost:1337/categories` to return the data for the allowed **Find** value for your **Category** Content Type.
|
||||
|
||||
::: tip NOTE
|
||||
|
||||
If you have incorrectly or not set permissions to your content type, you will get a **"403"** permission error. See the below example.
|
||||
|
||||
Forbidden Access Looks like this:
|
||||
|
||||

|
||||
:::
|
||||
|
||||
::: tip NOTE
|
||||
|
||||
If you would like to see the route of any specific **Content Type**, you will need to navigate to the **Content Type** under the **Roles and Permissions** plugin and click the ⚙️ next to the value. On the right, you will see the route:
|
||||
|
||||

|
||||
|
||||
:::
|
||||
|
||||
::: tip CONGRATULATIONS
|
||||
👏 Congratulations, you have now completed the **Strapi Quick Start Tutorial**. Where to go next?
|
||||
|
||||
- Learn how to use Strapi with React ([Gatsby](https://blog.strapi.io/building-a-static-website-using-gatsby-and-strapi) or [Next.js](https://blog.strapi.io/strapi-next-setup/)) or Vue.js ([Nuxt.js](https://blog.strapi.io/cooking-a-deliveroo-clone-with-nuxt-vue-js-graphql-strapi-and-stripe-setup-part-1-7/)).
|
||||
- Read the [concepts](../concepts/concepts.html) and [articles](../articles/) to deep dive into Strapi.
|
||||
- Get help on [StackOverflow](https://stackoverflow.com/questions/tagged/strapi).
|
||||
- Read the [source code](https://github.com/strapi/strapi), [contribute](https://github.com/strapi/strapi/blob/master/CONTRIBUTING.md) or [give a star](https://github.com/strapi/strapi) on GitHub.
|
||||
- Follow us on [Twitter](https://twitter.com/strapijs) to get the latest news.
|
||||
- [Join the vibrant and active Strapi community](https://slack.strapi.io) on Slack.
|
||||
:::
|
||||
|
||||
## 5. Add content to each Content Type
|
||||
|
||||
@ -424,48 +598,3 @@ Go ahead and add `Time Saving`, the `Strapi Restaurant`.
|
||||

|
||||
|
||||
:::
|
||||
|
||||
## 6. Set roles and permissions
|
||||
|
||||
By default, Strapi publishes all **Content Types** with restricted permissions. Which means you have to explicitly give permissions to each **Content Type** you create. You are going to give **Public** API (or URL) access to the **Restaurant** Content Type.
|
||||
|
||||
Locate and click on the **Roles & Permissions** menu item under **PLUGINS** on the left menu. (The **Roles & Permissions** plugin can accomplish many tasks related to permissions. For now, focus on the **Public** role.)
|
||||
|
||||
Next, click on the **Public** Role.
|
||||
|
||||

|
||||
|
||||
From here, scroll down under **Permissions** and find **Restaurant** and **Category**. Click the checkbox next to **find** and **findone** for each of them. Scroll back to the top, and click the **Save** button.
|
||||
|
||||

|
||||
|
||||
## 7. Consume the Content Type API
|
||||
|
||||
The project is accessible by following the `http://localhost:1337/` link. You will see the **'Welcome'** screen.
|
||||
|
||||

|
||||
|
||||
What you want is the **Restaurant Content Type**. The route is `/restaurants`. In your browser, type `http://localhost:1337/restaurants`.
|
||||
|
||||

|
||||
|
||||
::: tip NOTE
|
||||
|
||||
If you have incorrectly or not set permissions to your content type, you will get a **"403"** permission error. See the below example.
|
||||
|
||||
Forbidden Access Looks like this:
|
||||
|
||||

|
||||
|
||||
:::
|
||||
|
||||
::: tip CONGRATULATIONS
|
||||
👏 Congratulations, you have now completed the Strapi Quick Start Tutorial. Where to go next?
|
||||
|
||||
- Learn how to use Strapi with React ([Gatsby](https://blog.strapi.io/building-a-static-website-using-gatsby-and-strapi) or [Next.js](https://blog.strapi.io/strapi-next-setup/)) or Vue.js ([Nuxt.js](https://blog.strapi.io/cooking-a-deliveroo-clone-with-nuxt-vue-js-graphql-strapi-and-stripe-setup-part-1-7/)).
|
||||
- Read the [concepts](../concepts/concepts.html) and [articles](../articles/) to deep dive into Strapi.
|
||||
- Get help on [StackOverflow](https://stackoverflow.com/questions/tagged/strapi).
|
||||
- Read the [source code](https://github.com/strapi/strapi), [contribute](https://github.com/strapi/strapi/blob/master/CONTRIBUTING.md) or [give a star](https://github.com/strapi/strapi) on GitHub.
|
||||
- Follow us on [Twitter](https://twitter.com/strapijs) to get the latest news.
|
||||
- [Join the vibrant and active Strapi community](https://slack.strapi.io) on Slack.
|
||||
:::
|
||||
|
||||