Book Image

Designing Web APIs with Strapi

By : Khalid Elshafie, Mozafar Haider
4 (1)
Book Image

Designing Web APIs with Strapi

4 (1)
By: Khalid Elshafie, Mozafar Haider

Overview of this book

Strapi is a Node.js-based, flexible, open-source headless CMS with an integrated admin panel that anyone can use and helps save API development time. APIs built with Strapi can be consumed using REST or GraphQL from any client. With this book, you'll take a hands-on approach to exploring the capabilities of the Strapi platform and creating a custom API from scratch. This book will help JavaScript developers to put their knowledge to work by guiding them through building powerful backend APIs. You'll see how to effortlessly create content structures that can be customized according to your needs, and gain insights into how to write, edit, and manage your content seamlessly with Strapi. As you progress through the chapters, you'll discover a wide range of Strapi features, as well as understand how to add complex features to the API such as user authentication, data sorting, and pagination. You'll not only learn how to find and use existing plugins from the open-source community but also build your own plugins with custom functionality with the Strapi plugin API and add them to the admin panel. Finally, you'll learn how to deploy the API to Heroku and AWS. By the end of this book, you'll be able to build powerful, scalable, and secure APIs using Strapi.
Table of Contents (17 chapters)
1
Section 1: Understanding Strapi
6
Section 2: Diving Deeper into Strapi
11
Section 3: Running Strapi in Production

Creating our first content-type – a classroom

We will create our first content-type, which will represent the classroom entity. For now, a classroom will have name, description, and maximum students values. Let's get started:

  1. Run the Strapi admin panel, normally at http://localhost:1337/admin.

    Remember

    By default, Strapi uses port 1337. This value is used in the server.js file and can be overridden using the PORT environment variable. We will discuss this later on in Chapter 9, Production-Ready Applications.

  2. Navigate to Content-Type Builder, under the PLUGINS section.
  3. Click on Create new collection type.
  4. For Display name, enter Classroom; leave the other fields as they are.

    Important Note

    API ID (Singular) and API ID (Plural) are auto-populated from the Display name field. API ID (Singular) is used in generating the database tables while API ID (Plural) is used to access the content-type via the API URL; we will see this in action later on in this chapter...