Laravel API Course

1. Intro & Setup

Welcome to the Laravel API course! Get ready to dive into the exciting world of building APIs with Laravel, the powerful and flexible PHP framework.

15:57

2. Cleaning up Laravel

Ready to supercharge your Laravel project for an API-first approach? Let’s dive into optimizing and cleaning it up to make it lightning-fast and ultra-efficient!

16:19

3. Data Modeling

When building an API, mastering the art of structuring your data and defining dynamic relationships between various entities is absolutely essential in Laravel 11.

24:27

4. API Design

When you design an API, it’s absolutely crucial to understand that every API should have a meaningful purpose!

33:09

5. Authentication & Authorization

Say goodbye to the hassle of manually crafting every single detail, and say hello to a streamlined, efficient process that keeps your endpoints vividly documented and ready to go!

14:15

6. Rate Limiting

When it comes to managing API requests, rate limiting is a key player. You don’t want to open the floodgates and let users bombard your API with endless requests.

8:24

7. API Versioning

API versioning might sound like a minor detail at first, but trust me, it's one of those decisions that can make or break the future usability of your API.

22:22

8. Pagination

When you're handling requests that could return extensive lists of resources, it's essential to implement pagination to ensure your responses are manageable and user-friendly.

11:43

9. API Standards

API standards, while useful, aren’t the be-all and end-all. What often takes precedence is discoverability and consistency in your API design.

26:17

10. Handling Errors

Today, we'll explore how to leverage Laravel 11’s error handling system by implementing the API Problem Specification and enhancing it with custom packages to provide consistent, informative error responses.

26:49

11. Write Operations

Let’s explore the steps to manage resources in a Laravel 11 API, focusing on creating, validating, updating, and deleting resources. We’ll use a real-world approach to ensure clarity and usability.

29:30

12. Internationalization

In our previous video, we dove deep into handling write operations—everything from data validation and authorization to deciding between synchronous and asynchronous processing.

11:44

13. Caching Data

In our previous video, we dove deep into handling write operations—everything from data validation and authorization to deciding between synchronous and asynchronous processing.

18:08

14. Basic Security

When it comes to API security, think of it not as a threat but as an opportunity—a chance to build robust, multilayered defenses around your API.

9:53

15. Cache Requests

In Laravel 11, we can take advantage of built-in HTTP features to manage our cache more effectively, streamlining both the response time and the overall user experience.

8:40

16. Scheduling tasks & Sending requests

When working on a Laravel API, the task scheduling system plays a significant role in automating background jobs.

40:33

17. Notifications

Whether you're building a ping service or any application that requires user communication, you’ll likely need to notify users when certain actions occur, such as a service failure.

15:57

18. Monitoring and Logging

When you're developing APIs, it's important to have a clear picture of how your API is performing in real-time.

21:33

19. Testing

When you're developing APIs or any web-based product using Laravel 11, testing plays a crucial role in ensuring that your application behaves as expected.

18:01

20. API Platform

When it comes to building web applications, Laravel has long been a go-to framework for many developers. It's a robust framework, especially for full-stack applications.

17:16

21. Feature Flags

When it comes to building web applications, Laravel has long been a go-to framework for many developers. It's a robust framework, especially for full-stack applications.

11:05

22. Web Sockets

When you're working with APIs, there's a common misconception that WebSockets aren't relevant.

9:58

23. Search API

When you're building APIs, one key feature that often gets overlooked is search. That's what we’ll explore today using TypeSense(https://typesense.org/), a powerful open-source search engine.

15:30

24. Documenting your API

By default, API Platform will give you an OpenAPI specification (currently version 3.1). This standard format allows your API to be easily understood by machines and developers alike.

07:06

Want an easy-to-use API Observability Tool? Try Treblle now

Intro & Setup

About this lesson

Welcome to the Laravel API course! Get ready to dive into the exciting world of building APIs with Laravel, the powerful and flexible PHP framework.

15:57 October 4, 2024

Welcome to the Laravel API course!

Get ready to dive into the exciting world of building APIs with Laravel, the powerful and flexible PHP framework. We’ll guide you through the essentials, from setting up a fresh Laravel project to crafting a top-notch, high-performance API that's a breeze to manage. Let's get started and unleash the full potential of Laravel together!

Why Laravel for APIs?

Laravel is an outstanding choice for building APIs, whether you're crafting a small microservice or a full-stack powerhouse. It boasts a clean and expressive syntax, a vibrant ecosystem, and robust tools that make API development an absolute breeze.

Getting Started: Installing Laravel

Let's get the ball rolling by setting up an awesome new Laravel project! The Laravel installer makes this a breeze, providing a command-line interface (CLI) to quickly create and manage your Laravel masterpieces.

1. Install Laravel Installer

Open your terminal and run the following command:

composer global require laravel/installer

This installs the Laravel installer globally on your machine, giving you access to the laravel command.

2. Create a New Project

To create a new Laravel project, run:

laravel new project-name

Replace project-name with your dream project name, like ping. This command kickstarts a brand-new Laravel project with all the essential files and dependencies you need!

Choosing a Starter Kit

When starting a new project, you have several starter kits to choose from:

  • Laravel Breeze: A lightweight starter kit with basic authentication scaffolding.
  • Laravel Jetstream: A more comprehensive kit that includes features like API tokens, multi-factor authentication, and team management.

For this API course, we'll supercharge our development with Laravel Breeze using the API-only option! This streamlined approach wipes out unnecessary frontend components, letting us laser-focus on backend excellence.

Selecting a Testing Framework

Testing is crucial in API development. Laravel supports several testing frameworks:

  • Pest PHP: A testing framework with a minimalistic syntax, great for beginners.
  • PHPUnit: A more comprehensive and traditional testing framework.

If you’re new to testing, dive into Pest PHP! It’s simple, fun, and super easy to use.

Setting Up Git and Choosing a Database

Initialize a Git Repository

Even if you don’t plan to share your project on platforms like GitHub, it’s an awesome practice to use version control! Kickstart a Git repository to effortlessly keep track of changes and roll back whenever needed!

git init
git add .
git commit -m "Initial commit"

Choose Your Database

Laravel supports a variety of awesome databases, including SQLite, MySQL, PostgreSQL, and SQL Server. For this exciting project, we’re diving into PostgreSQL! Get your .env file ready and power it up with the necessary database credentials:

DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password

Run this command and watch the magic happen as your default database tables get migrated:

php artisan migrate

Tools for Laravel Development

Local Development Environment

For local development, dive into Laravel Herd! It's a blazing-fast, super lightweight local server environment that's simplicity itself, no Docker headaches required. Effortlessly switch between different development setups with support for PostgreSQL, Redis, and more. Get ready to streamline your workflow like never before!

Database Management

Supercharge your database management with TablePlus! This awesome GUI tool lets you create, edit, and handle your databases with ease. Instantly visualize your database schema and run those queries like a pro!

Code Standards and Static Analysis

Maintaining a high standard of code quality is an absolute game-changer! Gear up with Laravel Pint for mind-blowing code formatting and unleash PHPStan for top-notch static analysis. Your code will shine, be lightning-fast, and virtually bug-free!

Install PHPStan, as Laravel Pint comes pre-installed for you.

composer require --dev phpstan/phpstan

Supercharge your project by crafting a dynamic pint.json and a tailored phpstan.neon file to meet your unique requirements!

Working with APIs

Testing Your API

Forget the limitations of interacting with APIs through your browser! Supercharge your API testing with Aspen, the must-have tool from Treblle! Aspen is all about speed, simplicity, and privacy. Customize your requests, set headers with ease, and experience hassle-free endpoint testing like never before!

Aspen - Your API's best friend, the ultimate free API testing tool for macOS with AI Integration.

SSL and Secure Connections

Ready to set up a blazing-fast, ultra-secure connection with Laravel Herd? It's a breeze! Just open the Herd application, head over to the Sites tab, and click on that shiny padlock icon at the top center of your screen. You might need to enter your password, but once you do, BOOM! You've got automatic SSL sites running locally with hassle-free certificates. Welcome to a world without headaches!

Conclusion

By following the exciting steps outlined above, you should now have an awesome Laravel API project set up and raring to go for development.

Have any questions or need more guidance? Don't hesitate to reach out on our Discord - we're here and excited to help you out!