Web Development · WDC-99

API Services with Strapi

API Services with Strapi is a course in building back-end APIs with Strapi 5, from content type design, REST and GraphQL to customising controllers and services with the Document Service API, securing them with JWT and API tokens, then testing and deploying with Docker. It suits backend and full-stack developers who know JavaScript, and you leave with a deployable registration API.

Updated
From 9,450 THB / person 10,500 −10% excl. VAT 7% · group rates available
PDFDownload the course outline
  • Duration18 hours · 3 days
  • FormatOnsite / live online
  • Next roundOn request
  • CertificateIncluded

Course overview

Modern applications often have several front ends sharing the same data, such as a website, a mobile app and internal systems. A headless CMS like Strapi lets a team build APIs and a content admin panel quickly without writing the whole back end by hand. In real projects, though, developers still need to customise business logic, control permissions, protect the API and deploy it securely, and they need to understand the major changes in Strapi 5, such as documentId, the new response format and the Document Service API that replaces the old Entity Service.

This course takes developers through building API services with Strapi 5. Learners create a TypeScript project, design content types, components, dynamic zones and relations, and use the REST API with filters, population, Draft & Publish and i18n. They then customise the back end with routes, controllers, services, the Document Service API, policies and middlewares, secure it with JWT, API tokens and CORS, and enable a GraphQL API. The course continues with connecting a front end through the Strapi Client, building a custom plugin, testing the API with Jest and Supertest, and enabling the Strapi MCP server for AI clients. It closes with a workshop that builds and deploys a training registration API with Docker and PostgreSQL. (3 days, 6 hours per day, 18 hours in total, Intermediate level.)

What you’ll gain

  • Understand the headless CMS approach and the major changes in Strapi 5
  • Design content types, components, dynamic zones and relations that fit real data
  • Use Strapi's REST API with filters, sorting, pagination, population, Draft & Publish and i18n
  • Customise routes, controllers and services, and write business logic with the Document Service API
  • Control access and security with policies, middlewares, JWT, API tokens and CORS
  • Enable a GraphQL API, connect front ends with the Strapi Client and build a custom plugin
  • Test the API and deploy Strapi with Docker and PostgreSQL

Who this course is for

  • Backend and full-stack developers who want to build APIs and content management systems quickly
  • Frontend developers who need a back end for websites or mobile apps using JavaScript or TypeScript
  • Developers on Strapi 4 who want to move to Strapi 5 the right way
  • Development teams who want content staff to manage data themselves through the admin panel

Prerequisites

  • Good JavaScript skills; familiarity with TypeScript and async/await helps you learn faster
  • Understanding of HTTP, JSON and basic REST API principles
  • Basic command-line, npm and Git skills
  • A laptop that can run a Node.js LTS release, Docker Desktop and VS Code, with permission to install software

Curriculum

Course Details

This is the 2026 edition of the API Services with Strapi course. It runs for 3 days, 6 hours per day (18 hours in total, 09:00-16:00), as lectures with labs built on a single training registration API project throughout, at Intermediate level. The content has been rewritten for Strapi 5, covering documentId, the new response format and the Document Service API, and adds TypeScript, policies, middlewares,

API tokens, GraphQL, the Strapi Client, the Plugin SDK, testing, the Strapi MCP server and deployment with Docker and PostgreSQL. The course goes deep into the back end, while full-stack work with React continues in the React and NodeJS with Docker Workshop course. Every lab uses the free open source edition of Strapi. Learners take home a lab guide, source code for every lab and docker-compose files.

Day 1 Strapi 5 and Content Modelling

Section 1: Lab: Headless CMS and Getting Started with Strapi 5

  • How a headless CMS differs from a traditional CMS and what it suits
  • What is new in Strapi 5: documentId, the new response format and the Document Service API
  • Create a TypeScript project with create-strapi and choose a database
  • Project structure, config files and the .env file
  • Lab: create a project, open the admin panel and create the first administrator

Section 2: Lab: Designing Content Types

  • Collection types and single types, and when to use each
  • Field types and validation in the Content-Type Builder
  • Components and dynamic zones for flexible content
  • Schema files in code, and managing content types with Git
  • Lab: design the content types for a training registration system

Section 3: Lab: Relations and the Media Library

  • One-to-one, one-to-many and many-to-many relations
  • Upload files and images through the Media Library, with automatically generated image sizes
  • Upload providers that store files in cloud storage instead of on the server
  • Lab: relate courses, sessions, instructors and registrants

Section 4: Lab: The REST API Strapi Generates

  • Standard endpoints for collection types and single types
  • Filters, sorting, pagination and selecting only the fields you need
  • Populate related data just enough, without over-fetching
  • Open Public and Authenticated permissions in Users & Permissions
  • Lab: call the API with Postman or Bruno and build queries with qs

Section 5: Lab: Draft & Publish and i18n

  • Draft and published content, and the status parameter in the API
  • Enable Internationalization (i18n) and manage Thai and English content
  • Fetch content by locale, and what to watch for with relations
  • An overview of Preview for checking pages before publishing
  • Lab: publish bilingual course data and fetch it through the API
Day 2 Customising the Back End and Security

Section 6: Lab: Routes, Controllers and Services

  • The path of a request in Strapi, from route to service
  • Build with the core router, controller and service, then extend them
  • Add custom routes and actions of your own
  • Sanitise and validate data before returning it
  • Lab: a registration endpoint that checks available seats before saving

Section 7: Lab: The Document Service API

  • strapi.documents() with findMany, findOne, create and update
  • Working with documentId, locale and status
  • publish, unpublish and discardDraft from code
  • Migrating code from the Strapi 4 Entity Service to the Document Service
  • Lab: a service that counts registrants per session

Section 8: Lab: Policies, Middlewares and Document Service Middlewares

  • Policies that check access before a route runs
  • Route middlewares and global middlewares
  • Document Service middlewares with strapi.documents.use(), replacing the Strapi 4 patterns
  • Handle errors and return consistent error messages
  • Lab: let users edit only their own registrations

Section 9: Lab: Authentication, JWT and API Tokens

  • Register and log in through /api/auth/local and use JWTs
  • Roles and permissions in Users & Permissions
  • API tokens for system-to-system access, with fine-grained permissions
  • CORS, rate limiting and security settings for production
  • Lab: separate permissions for learners, staff and external systems

Section 10: Lab: GraphQL API

  • Install the GraphQL plugin and open the GraphQL sandbox
  • The queries and mutations Strapi generates automatically
  • Send JWTs with GraphQL and limit query depth
  • Choosing REST or GraphQL to suit the front end
  • Lab: fetch courses with their sessions in a single GraphQL query
Day 3 Connecting, Extending and Deploying

Section 11: Lab: Connecting a Front End with the Strapi Client

  • Install @strapi/client and set the baseURL and token
  • collection(), single() and files for CRUD and file uploads
  • Filters, population and pagination through the client
  • Handle errors and store tokens safely on the front end
  • Lab: a web page listing courses with a registration form that calls Strapi

Section 12: Lab: Building Your Own Plugin

  • Choosing plugins from the Marketplace and what to check before installing
  • Create a plugin with @strapi/sdk-plugin init
  • The server and admin parts of a plugin, and registering services
  • Lab: a plugin that sends a confirmation email for each new registration

Section 13: Lab: Testing the API

  • Set up Jest in a Strapi 5 project with a test database
  • Unit tests for services and integration tests with Supertest
  • Test endpoints that need login, and cases without permission
  • Lab: a test suite for the training registration API

Section 14: Lab: The Strapi MCP Server and AI

  • What MCP is and what the Strapi MCP server can do
  • Enable the MCP server in config/server and authenticate with an admin token
  • Connect an MCP-capable AI client to read and manage content
  • Limit permissions and review AI output before publishing
  • Lab: have an AI client draft course data through MCP

Section 15: Workshop: Deploying with Docker and PostgreSQL

  • Environment variables and secrets for production
  • A Dockerfile and docker compose for Strapi with PostgreSQL
  • Move data between machines with the export, import and transfer commands
  • An overview of deploying on your own server and on Strapi Cloud
  • Workshop: deploy the complete training registration API and present the result

Schedule & training options

For individuals — public rounds

No public rounds are open right now. Join the waiting list and we will contact you first when the next round opens, or ask us on LINE. Or call 02-570-8449 or 088-807-9770

For organisations — in-house / private

  • Tailor the content to your team’s tools and projects
  • Your dates, at your office or live online
  • Quotation with tax ID for procurement
Corporate training quote

Instructors

Frequently asked questions

What is a headless CMS, and how does it differ from a traditional CMS?

A traditional CMS such as WordPress manages both the content and the pages that display it in one system. A headless CMS such as Strapi stores and manages content through an admin panel and delivers it as an API, REST or GraphQL, to any front end, such as a React or Next.js website, a mobile app or an internal system. Teams can choose their front-end technology freely and reuse the same data across many channels.

What are the steps to build an API with Strapi 5?

Create a project with npx create-strapi@latest, choosing TypeScript and a database, then open the admin panel and create content types and fields in the Content-Type Builder; Strapi generates the REST API automatically. Set permissions in Users & Permissions or create an API token, and try the endpoints with Postman or Bruno. For custom logic, extend controllers and services using the Document Service API, which in Strapi 5 identifies content by documentId.

What is the difference between a collection type and a single type in Strapi?

A collection type is for data with many entries, such as courses, articles or products, and its API offers both list and single-entry endpoints. A single type is for data that exists only once, such as homepage content or site settings, and its API always returns that one entry. Both can use components and dynamic zones, and both support Draft & Publish and i18n.

Who is the API Services with Strapi course for, and what should I know beforehand?

It suits backend, full-stack and frontend developers who want to build APIs and content management systems quickly, and developers on Strapi 4 who want to move to Strapi 5. You should write JavaScript well, understand basic HTTP, JSON and REST APIs, use the command line, npm and Git, and bring a laptop that can run a Node.js LTS release, Docker Desktop and VS Code.

What will I be able to do after the API Services with Strapi course?

You will be able to design content types and relations for real data, use Strapi 5's REST and GraphQL APIs, customise the back end with controllers, services, the Document Service API, policies and middlewares, control access with JWT and API tokens, connect front ends with the Strapi Client, build plugins, write tests and deploy with Docker and PostgreSQL, taking home the project source code. Participants who complete the training receive a Certificate of Completion with its own number, which can be verified online.

Can the API Services with Strapi course be run in-house for our team?

Yes. It can be run in-house for your team, with examples adapted to your own work, such as designing content types for your organisation's real system or focusing on migrating projects from Strapi 4 to Strapi 5. You can request a quotation from this page, or contact us on LINE @itgenius or by phone on 02-570-8449.

Related articles

Articles are published in Thai.