Designing Web APIs with Strapi: Get started with the Strapi headless CMS by building a complete learning management system API
- Length: 310 pages
- Edition: 1
- Language: English
- Publisher: Packt Publishing
- Publication Date: 2022-02-28
- ISBN-10: 180056063X
- ISBN-13: 9781800560635
- Sales Rank: #1602134 (See Top 100 Books)
Leverage the power of Strapi to build self-hosted, customizable, and performant content APIs
Key Features
- Discover how Strapi can help you build APIs quickly and focus on your products and features
- Learn how to put Strapi into practice by implementing it in real-world scenarios
- Understand how to use Strapi’s powerful features to customize your APIs
Book Description
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.
What you will learn
- Explore Strapi and understand how it works
- Define content types to build APIs quickly and efficiently
- Understand authentication and authorization in Strapi
- Create production-ready APIs with Strapi
- Deploy the Strapi API to various environments, including Heroku and AWS
- Use best practices to run the Strapi API in production
- Sync permissions to access the API between multiple environments
- Write basic tests for API utilities as well as the endpoint
Who this book is for
This book is for backend and frontend JavaScript developers. Experienced API developers will learn a new, fast, and flexible way of building APIs, while frontend developers will be able to take a step toward becoming full-stack developers by learning how to leverage Strapi for building APIs quickly. Basic knowledge of JavaScript and REST API concepts is assumed.
Designing Web APIs with Strapi Contributors About the authors About the reviewer Preface Who this book is for What this book covers To get the most out of this book Download the example code files Using this repository Following along with the book Download the color images Conventions used Get in touch Share your thoughts Section 1: Understanding Strapi Chapter 1: An Introduction to Strapi What is Strapi? Why use Strapi? (The benefits of Strapi) Open-source Node.js Database-agnostic Customizable (extendable) RESTful and GraphQL Users and permissions Preparing the development environment Installing Node.js Installing Visual Studio Code (optional) Installing Yarn Installing Docker (optional) Installing Postman Creating a Strapi application Overview of the admin panel Understanding server scripts The develop script The start script The build script The Strapi script Summary Chapter 2: Building Our First API Exploring the project structure of a Strapi application The commands to run Strapi The project structure Under the hood – the components that make up Strapi Defining the API requirements Creating our first content-type – a classroom Using the Strapi CLI instead of the admin panel Clarifying Strapi terminology Content-types, resources, object types, and models Interacting with the Strapi API Setting permissions What did we just create? Understanding the makeup of a Strapi API Routes, controllers, services, and models Content-types in code Summary Chapter 3: Strapi Content-Types What is the Content-Type Builder plugin? Creating and managing content-types Creating a title field Creating a slug field Creating a type field Creating url and contents fields Understanding relations in Strapi One-way One-to-one One-to-many Many-to-one Many-to-many Many-way Creating a Tutorial and Classroom relation Creating a tutorial from the admin panel Interacting with the API endpoints from Postman Differences between SINGLE TYPES and COMPONENTS Creating components Summary Chapter 4: An Overview of the Strapi Admin Panel Navigating around the admin panel Content Manager PLUGINS GENERAL Marketplace Plugins Settings Managing admin users The difference between Users and admin users Creating new admin panel users Managing admin panel roles Managing content effectively Searching and filtering to query our data Customizing the table view Customizing the details view Using the Media Library Media types in API responses Summary Section 2: Diving Deeper into Strapi Chapter 5: Customizing Our API The routes – where it all starts The default routes Disabling a core route Adding a new route Handling routes with controllers Adding a new controller handler for our endpoint Controllers – it's all about context Reusing logic with Strapi services Communicating with the database using the Entity Service API Returning a unified response Populating relationships Sanitizing data – hiding passwords Overriding the default CRUD APIs Tweaking database queries and responses with life cycle hooks Using hooks DRYing the hook's logic with services Summary Chapter 6: Dealing with Content Creating sample data Cleaning up Sorting API content What about sorting on multiple fields? Filtering API content Paginating API content Under the hood – how it works Summary Chapter 7: Authentication and Authorization in Strapi Understanding the difference between admin users and API users API login and sign-up What if I want to change the JWT expiration time? What if I want to change the JWT secret? Securing API routes Under the hood – how it works Using Strapi roles and permissions Creating the Student role Creating the Teacher role Creating the Admin role What if I want to change the default role for a new user? Working with policies Creating a policy Honorable mention – OAuth providers Summary Chapter 8: Using and Building Plugins Exploring the Strapi plugin ecosystem What is a plugin in Strapi? Installing and using plugins from the Marketplace Installing the API Documentation plugin from the CLI Finding more plugins Use case – Enabling GraphQL for our API Use case – Sending an email from Strapi Sending an email using the Email plugin Plugins and providers Hooking our API to send an email Creating our own plugins Plugin development – frontend versus development Building our plugin Updating the model Building the Enrollments component Creating an API token Displaying enrollments in the plugin Using Strapi Design System Summary Section 3: Running Strapi in Production Chapter 9: Production-Ready Applications Seeding the database Keeping permissions in sync Serving media from an S3 bucket Using PostgreSQL Testing PostgreSQL locally Summary Chapter 10: Deploying Strapi Deploying to Heroku Deploying to AWS Fargate Step 1 – Creating a Docker image for our API Step 2 – Creating a Docker repository on AWS ECR Step 3 – Creating an AWS Fargate cluster Troubleshooting Cleaning up Summary Chapter 11: Testing the Strapi API An overview of software testing Configuring test tools Setting up the test environment Preparing the database configuration Preparing the Strapi instance Writing and running tests Testing a public endpoint Testing a secure endpoint Summary Appendix: Connecting a React App to Strapi About the React app Understanding the React app folder structure Running the app Why subscribe? Other Books You May Enjoy Packt is searching for authors like you
Donate to keep this site alive
How to download source code?
1. Go to: https://github.com/PacktPublishing
2. In the Find a repository… box, search the book title: Designing Web APIs with Strapi: Get started with the Strapi headless CMS by building a complete learning management system API
, sometime you may not get the results, please search the main title.
3. Click the book title in the search results.
3. Click Code to download.
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.