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

Monitoring and Logging

About this lesson

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

21:33 October 4, 2024

When you're developing APIs, it's important to have a clear picture of how your API is performing in real-time. Are there slow endpoints? Are there errors popping up that you may not have noticed? These are the questions that arise in any project, and the only way to answer them effectively is by setting up a proper monitoring and logging system.

Monitoring Your API with Treblle

To keep things smooth and efficient, I rely on Treblle. Treblle offers a simple yet powerful way to monitor everything that's going on within your API. It provides insights into which endpoints might be under heavy load or where you can optimize query performance and caching strategies.

Setting up Treblle is incredibly fast and painless. Let’s walk through how to get it up and running with Laravel 11.

Step 1: Installing Dependencies

The basic dependencies for using Treblle in a Laravel project include:

  • Laravel Framework (11+)
  • GuzzleHTTP (for handling HTTP requests)
  • Carbon (a simple extension for working with dates and times)

Start by installing the necessary dependencies. Here's how you can get it done:

composer require treblle/treblle-laravel

Once installed, you’ll need to publish the configuration files:

php artisan vendor:publish --tag=treblle-config

This will create a configuration file where you can adjust how Treblle operates within your Laravel API.

Step 2: Setting Up Treblle in Laravel 11

Laravel 11 introduces some slight changes compared to previous versions, especially around how you can register your package and manage middleware. After installing the package, you’ll need to register Treblle. You can either register this as a middleware alias in bootstrap/app.php or you can just use the fully qualified class name when wanting to register middleware.

->withMiddleware(
    callback: function (Middleware $middleware): void {
        // As Alias
        $middleware->alias([
            'treblle' => TreblleMiddleware::class,
        ]);

        // Add to all API Routes
        $middleware->api([TreblleMiddleware::class]);
    },
)

Step 3: Configuration for Environments

It's important to note that you might not want Treblle to log all environments. For example, logging activity in your CI or staging environments might not make sense. You can easily configure which environments should be ignored by modifying the treblle.php config file.

'ignore_environments' => ['testing', 'staging'],

This ensures Treblle only monitors environments that matter to you—typically production or development.

Step 4: Privacy Matters

Treblle is mindful of privacy and security. When sensitive data such as passwords or API keys are transmitted, Treblle ensures they are masked and protected. You can configure which fields should be masked in the config file:

'masked_fields' => ['password', 'secret'],

This way, any sensitive information will be obscured in your logs, ensuring your users’ privacy is safeguarded.

Step 5: Leveraging Real-Time Monitoring

Once Treblle is set up, you can monitor your API in real-time. Head over to the Treblle Dashboard to see a live feed of requests hitting your API. You’ll be able to see response times, payload sizes, and even detect failed authentication attempts.

For instance, let’s say we send a POST request to /api/login. Treblle can show you the exact payload, headers, and response time:

{
    "status": 200,
    "responseTime": "17ms",
    "responseSize": "340 bytes",
    "authentication": "Authenticated"
}

From this data, you can quickly spot issues like long response times or improper authentication setups.

Step 6: Testing with Apache Benchmark

To stress-test your API, you can use a tool like Apache Benchmark. It allows you to simulate multiple requests hitting your API and gives you valuable performance metrics like requests per second and average response time.

ab -n 100 -c 10 https://api.example.com/v1/services

This sends 100 requests with 10 concurrent connections to your /v1/services endpoint and returns data on how your API performs under load. These metrics can then be cross-referenced with Treblle’s logs for a more holistic view of your API’s performance.

Conclusion

API performance and security are not just important—they’re essential. Using a tool like Treblle ensures that you’re always aware of what’s happening under the hood. And with Laravel 11, setting up monitoring and logging is straightforward. As we continue building and optimizing APIs, keep monitoring those endpoints and tweaking them based on real-time insights.