COMING SOON!

Become a PHP API Pro: Learn the Essentials of API Development in PHP!


Unleash powerful, scalable APIs šŸ”„

PHP API PRO artwork

"Zero confusion...only crystal clear understanding of API concepts and their practical application." Gary

Essential Learning for Every PHP Developer


Every PHP developer will eventually be required to build and maintain APIsā€”thatā€™s a fact of life for us all. However, with so many considerations and different approaches, it can be hard to know if you're doing it right.

Itā€™s easy to feel overwhelmed with all the terminology and conflicting advice. How do you know who to believe? What are you supposed to know? Is there a ā€˜best wayā€™ to version, secure, and optimize an API, or does it all depend?

That level of understanding and experience might seem years away from where you are nowā€¦ Am I right? Actually, Iā€™m wrong! Youā€™re a lot closer than you think.

Iā€™ve packaged everything you need to know into a coherent video course that is relevant to you, easy to understand, and painless to apply.

Starting from scratch, weā€™ll build our own API. Iā€™ll take all the jargon and confusing concepts, explain them in plain language, demonstrate them using logical, practical examples, and let you try parts that will embed this knowledge into your brain.

Every PHP position requires API knowledge. Iā€™ll give you the edge over the competition by showing you not just how to do things, but when, where, and why to apply certain techniques, and how those can differ in various scenarios.

While many developers have an average understanding of APIs, HTTP, and web development, by the time you finish this course, you'll be the expert in the room.

Why Should You Enroll In This Course?


šŸ’° Career Advancement: These skills are guaranteed to propel your career forward.

šŸŖ¢ Industry-Standard Techniques: Learn the methods used in the best APIs.

šŸ†• Up-to-Date Information: Stay relevant with current, market-driven content.

šŸ§  Deep Understanding: Achieve an advanced level of knowledge in APIs and REST.

šŸŒ“ Flexible Learning: Work at your own pace and take as much time as you need.

šŸ” Attention to Detail: No other course covers this subject with the same level of detail.

šŸ“ˆ Promotion Readiness: Gain the expertise needed to become a senior developer.

šŸ’¼ Career Mobility: API fundamentals are transferable across all programming languages.

By the end of the course you will have a complete understanding of all these ESSENTIALS

REST - Resources + Representations - Serialization
API Versioning - Hypermedia APIs and HATEOAS
Using Postman - Open API - Optimization and Performance
Documenting + Designing APIs - Pagination, Filtering, Sorting - API Caching
Error Handling and API Problem - Cache-Control - API Security
API Testing - OAuth - Consuming APIs

PLUS MUCH MORE!!

HERE'S WHAT'S COVERED IN THIS COURSE..


API is a BIG SUBJECT...it needs a BIG COURSE

API Fundamentals

  • How REST Works
  • The Different Types of API
  • What Are Resources?
  • Resource Identifiers
  • Representations
  • Hypermedia APIs
  • Introduction to Headers
  • Statelessness
  • Project Setup
  • Using Postman
  • Connecting to the DB
  • PHPStan Composer Script
  • Creating Entities
  • Collection Endpoints
  • Item Endpoints
  • Content-Type Middleware
  • Refactoring to an Interface
  • Dynamic Serialization Formats


REST Operations

  • Introduction to REST Operations
  • GET Collection Theory Part 1
  • Idempotency
  • Safe Operations
  • GET Collection Theory Part 2
  • GET Item Theory
  • POST Theory
  • DELETE Theory
  • PUT Theory
  • PATCH Theory
  • HEAD Theory
  • OPTIONS Theory
  • GET Collection Operations
  • Postman Operations
  • GET Item Operations
  • Postman Collections
  • GET Item Operations
  • POST Operations
  • DELETE Operations
  • PUT Operations
  • PATCH Operations
  • PHPStan Config

API Design and Docs

  • Introduction
  • API Development Approaches
  • Code First API Development
  • Design First API Development
  • What is API First
  • Open API Specification
  • Create an OAS with Swagger p1
  • Create an OAS with Swagger p2
  • Public, Private, and Partner APIs
  • The Business: Jet-Fu.com
  • Documenting Hypermedia

Error Handling

  • API Error Handling
  • Problem Details RFC
  • Documenting Error Responses
  • Customized Error Handling
  • Set the Default Error Handler
  • Problem Details Body
  • Problem Detail Enum
  • Validating Entities
  • Entity Validator
  • Extracting Validation Errors
  • Validation Constraints
  • Validation Exception
  • Problem Details Extension
  • Refactoring Inherited Code
  • Problem Content Type
  • Validation Groups
  • Customized Serialization
  • Logging Errors
  • Monolog Logger
  • Maintenance Mode
  • 503 Retry After

Related Resources

  • Custom Serializer
  • Setting Default Content Format
  • Passenger Entity
  • Route Grouping
  • Create a Postman API
  • Create the Passengers Table
  • Create Entity Relationships
  • Create the Reservations Table
  • Seeding the Database
  • Documenting Reservation Operations
  • Reservations Routing
  • Reservations Controller
  • Reservation Repository
  • The Query Builder
  • Creating Nested Resources
  • Soft Deletes
  • Retrieving Single Reservations
  • Updating Reservations


Paginating, Filtering, Sorting

  • Introduction to Pagination
  • Paginating a Query
  • Pagination Query Parameters
  • Creating Pagination Links
  • Custom Count Queries
  • Creating Pagination Metadata
  • Pagination Metadata Object
  • Pagination Metadata Factory
  • Paginating Flights
  • Query Filters
  • Applying Dynamic Filters
  • Counting Filtered Records
  • Sorting Records
  • Sorting Demo
  • Reusable Sort Component
  • Sorting Reservations

The seventh section focuses on "Performance and Optimization", this is one of the responsibilities of a backend developer so you'll learn strategies to enhance API efficiency. The section begins with an introduction to optimization concepts, crucial for scalable and responsive APIs. It revisits pagination, emphasizing its role in performance. Query optimization is covered, highlighting techniques for efficient database interactions. The course also explores caching mechanisms, including application cache and HTTP caching, with a focus on headers like 'Cache-Control' and 'Vary' for fine-tuning cache behavior. Finally, the section guides you through identifying and addressing bottlenecks, a key step in optimizing API performance.

In section on security you'll delve into the crucial aspects of securing APIs. This section addresses fundamental security considerations. It covers both authentication and authorization processes, distinguishing their roles in API access control. You'll explore the implementation of roles and permissions, and the techniques for securing endpoints. The course includes detailed discussions on API keys, token-based authentication, OAuth, and OpenID Connect, offering a comprehensive view of contemporary authentication methods.

Section 8 focuses on one of the most-requested topics: "API Versioning". You'll explore the essential practice of managing API versions. The section begins with an introduction to versioning, highlighting its importance in API lifecycle management. You'll examine various versioning considerations and strategies, including URI versioning and using headers for version control. Youā€™ll learn about API evolution, a potential alternative to versioning as we know it. It also addresses deprecation strategies, the use of sunset headers to indicate end-of-life for API versions, and the significance of maintaining backwards compatibility to ensure seamless transitions between API versions.

In section 9, titled "Testing" you'll delve into the vital process of testing your API to ensure reliability and performance. The section starts with an introduction to testing. You'll explore what aspects of your API need testing and how to effectively test APIs using just PHP before moving on to testing with Postman and weā€™ll also discuss load testing to evaluate performance under stress. Additionally, it covers debugging techniques using XDebug and the importance of logging for monitoring API health.

In the section, "Consuming APIs" you'll focus on the practical aspects of using APIs effectively. The section starts with an introduction to the basics of API consumption. You'll engage in a study of existing APIs to understand diverse implementation strategies. The course covers the use of HTTP clients for API interactions and the intricacies of integrating APIs into applications. Testing these integrations for robustness is discussed, along with real-world examples to contextualize learning. Key topics like error handling, securing credentials, caching responses, and managing rate limits are addressed, equipping you with comprehensive knowledge for efficient API consumption.

In section 11, titled "Other API Types" you'll broaden your understanding beyond REST by exploring alternative API paradigms. This concise section introduces GraphQL, a powerful query language for APIs that allows clients to request exactly what they need, and nothing more. It contrasts the REST approach with the flexibility and efficiency of GraphQL. Additionally, the section delves into HTTP-RPC (Remote Procedure Call), discussing its use cases and how it differs from RESTful design by focusing on actions rather than resources. This section provides a fundamental understanding of these alternative API types, enriching your overall API design and development skills.

Check out some example videos from the course

Check back often for new content

Course Introduction - How REST Works

This video will show you all of the main components of REST, why they exist, and how they are used.

What are Resource Identifiers?

A Resource Identifier, also known as a URI (Uniform Resource Identifier), is an essential component of RESTful APIs as it allows clients to interact with specific resources by targeting their unique identifiers.

Using Postman

When it comes to testing an API, using a web browser can have its limitations. This is where tools like Postman come in handy. Postman is a popular API development and testing tool that allows you to easily make requests to APIs.

Idempotency

Idempotence means that the result of performing an operation multiple times is the same as performing it once. It is important that your API behaves in expected ways and knowing which operations should / should not be idempotent will help you with this.

PUT Operations

AĀ HTTP PUTĀ operation is used to update or replace a resource on the server.Ā When you send a PUT request to a specific URI,Ā you're instructing the server to update the resource at that location with the new data providedĀ in the request body.

Create an OAS using the Swagger Editor

The Open API Specification looks scary on first glance but actually there are tools we can use which makes the experience of creating one really quite painless...almost enjoyable!

Creating Nested Resources

A reservation can't exist without a related flight so it kinda makes sense to create this as a nested resource on a flights endpoint. Let me show you what I mean.

Paginating a Query

Here I'll show you how you can edit a database query so that it can also handle pagination.

Also check out these high-quality LIVE STREAMS which I created to accompany the course!

More to come! Make sure you subscribe for my live schedule!
PHP API Pro live session 1
Live Dive into RESTful Resources

This is the first live coding session to accompany the PHP API Pro course. In the session I'll create routes and handlers for retrieving single flights and collections of flights from the API. We'll also consider what our response content (representation) should look like when we serialize it as well as discussing other things.

PHP API Pro live session 2
Content Negotiation using Middleware and Enums

This is the second live coding session to accompany the PHP API Pro. In this session I'll create PSR15 middleware which leans on enums to handle content negotiation by checking the request accept header in order to serve content in the requested format. I'll also show you a really cool refactoring hack šŸ˜‰

Steve King and Gary Clarke live stream
REST API basics with the API Guy JustSteveKing

This is the third live session to accompany the PHP API Pro course. Join us live as we delve deep into the world of RESTful APIs with the expertise of API guru JustSteveKing. Whether you're a seasoned developer or just starting out, this stream is the perfect opportunity to enhance your understanding of REST operations, their purposes, status codes, representations, and much more.

OpenAPI 3: Design REST API Using Swagger Editor [PHP API Pro Live Stream]
OpenAPI 3: Design REST API using Swagger Editor.

In this fourth live session to accompany the PHP API Pro course I will show you how to create an OpenAPI document using the Swagger editor. I'll discuss the benefits of Open API and also talk you through the differences between code-first, design-first, and api-first approaches to API development.

PHP API Pro: Live Dive into REST Error Handling
PHP API Pro: Live Dive into REST error handling

This is the fifth live coding session to accompany the PHP API Pro course. In this session I'll create a custom validation exception and use a ProblemDetail enum in order to format a 422 unprocessable content error response which contains details of the errors plus hypermedia which allows the client to research the problem further.

PHP API Pro Live - API Pagination and Hypermedia

This is the sixth live coding session to accompany the PHP API Pro course. In this session I'll dynamically generate API hypermedia, including pagination page and metadata links. Then I'll refactor this away into a reusable factory class which can be used to paginate any collection resource šŸ’Ŗ

Check out some of my other popular courses

PHP Professional Toolkit

šŸ’° Massive Saving!

All of my best PHP courses bundled into one product. Save over $100 today!


Learn Object Oriented PHP logo

Object Oriented PHP

A complete guide to Object Oriented Programming in PHP


Testin PHP Artwork

Testing PHP

A complete guide to testing PHP applications


Git and Github logos

Git and Github

A practical guide to Git and Github




Docker and PHP Logo

Docker + PHP

A practical guide to Docker with PHP. Includes bonus material



PHP Professional Toolkit Plus

PHP Framework PRO

Understand modern PHP frameworks by building your own





This is what people have said about my courses

I do not know of anyone else that can lecture on Frameworks and has the same depth of working knowledge. Thank you! Mark Corrigan


This course is exactly what I'm looking for - Mark Watson


I have learnt quite a lot of useful stuff which you don't find in other courses, and I must say that my PHP skills level has grown tremendously - Nimrod Musungu


I liked the way he explains clearly the things he is teaching - Lorenzo


I have learnt OOP in a better and easy way, it gave me the confidence to stand in developer community and apply for my next job - Mayur


I appreciate Sir Gary's responsiveness to questions and willingness to clarify my doubts. In summary, this course exceeded my expectations. It transformed my coding skills and gave me the confidence to tackle complex - Asadullah


This is the course if you want a better understanding of TDD with useful examples and code along - Edin

It's really valuable because we go through all the steps of creating an API using TDD approach. There isn't much content of such quality available at such a reasonable price, so keep up the good work - German

The course answers exactly my needs. Jad

I really enjoy how the information is presented. I'm an experienced software engineer with knowledge related to PHP frameworks and the way information is presented is very valuable to me to recap the commonalities behind the specifics of PHP frameworks. Adrian Megreanu-Maior

I like this course and it was so worth waiting for. Alexis

I can understand the clear and perfect explanations - Luis Solis

This is perfect! - Unjoined

You have a great way of explaining OOP - Locoplata

This is one of the best courses I have ever done. You have a gift for teaching. Your training has given me very valuable context for all things I knew, corrected some stuff I did incorrectly, and has taught me innumerable new things. - Mark Thijssen

Making me enjoy coding again. - Drew Hinde

Gary has deep knowledge and he is following the best practices. I have no suspicions about learning non-useful nor obsolete techniques. It is essential to have work / code discipline and he has it and kind of routing you to have the same. - Burak

Gary has a patient delivery style, and I can understand him. I also appreciate that code for the video is provided, with each video, because I like to spend time testing and changing that code to get further into it. - Karl Zipser

Well explained step by step approach - Takunda Chibanda

The way of teaching is so good with real time examples. There is also engaging activities - Lokith S

Information delivered clearly and in a well-structured way - Sim

This course is fantastic! I'm really looking forward to watching the rest of the course. Thanks a million Gary! - Michael Gibbs

Well structured and taught - Suleyman Solak

Great tutorial! - Fh Ndiritu

It's much more pleasant to follow than most other courses I have tried. - Mick Amato

Thanks for this video, been watching it for the 2nd time and I can't even feel the time goes by - Lexer Quine

I won't lie, I've watched a lot of php oop course and this is the best!! Thank you king - Yasser Latrach

PHP is making sense and I can apply what I am learning at my job - Dee

Very engaging and easy to understand the concepts - Luciano

I'm very happy with the course and the instructor. - Paulo

Gary explains OOP with PHP very clearly and is easy to understand. I think it's simply great - thanks for creating it!! - Nicolas Alexander Rau

This course is a true gem! It's the first time I watched a 3h course and felt I really understood the concepts. Thank you so much Gary! Looking forward to the full course:) - Giulia Pizzignacco

I saw all the videos of oriented object programming and they were awesome! Great content - Arius

Great stuff for OOP in PHP for beginners and great reminders for other Devs. - TomTom Shaylash

Excellent course delivered by a knowledgeable and engaging content creator. Highly recommended - Drew Hinde

I have learnt so much new information which helps me to write efficient php (oop) code. I am very thankful to Gary for providing such quality content - Ridwanullah Raufi

I'm very pleased with the way Gary explains everything. - Rob Spruyt

I'm enjoying the clear English of Gary, well spoken and succinct explanation of his code. - James

Exactly what I needed for my level of coding, I can create crud applications in PHP, but OOP is completely new to me. - Tom

Sufficiently long sections to be able to take in the information, it makes it easier to understand. Very good explanations. - Mats Akebrand

I have had an extremely positive experience with this course, so Mr Clarke had definitely earned a perfect 5 stars from me! This course has helped me to understand how OOP works SO MUCH better than I previously did. I 100% understand all of his examples. - Jeffrey Carter

Excellent course, interesting and engaging - Clive

Thank you so much! Appreciate your hard work - Paul Toma

Great work. Waiting for next videos - Alwin Augustin

Beautiful work! - Mohammed B

Great work. Thank you Sir! - Yusuf Aliya

Great video! Thanks so much - Ck

Interesting tutorial, thanks for all! - Mdazhardware

Thanks, awesome work!- Hamad Adel

Great work!- Houssem Rahrah

Thanks for your time we appreciate it!- Mamadou Aly Sy

Great!- Sergey Vasko

Nice course- Kennedy Muthui


Gary Clarke - Who am I?


Hello and thank you so much for checking out my work. My name is Gary Clarke and I'm a software developer with many years experience, primarily in PHP. I started creating video tutorials during lockdown in 2020 because I wanted the challenge of being able to explain complex / technical subjects to others in a way which is easy to understand and remember.

At this moment in time, my videos have been watched over half a million times and I intend to keep creating new and improved content and teaching more and more new people. It would be my pleasure to see you on the inside of one of my courses.