COMING SOON!
Become a PHP API Pro: Learn the Essentials of API Development in PHP!
Unleash powerful, scalable APIs š„
"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!
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.
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 š
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.
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
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
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.