Sorry, your browser is not supported
To have the best experience using Skillshare, we recommend that you use one of these supported browsers.

RESTful API with Laravel: Definitive Guide

JuanD MeGon, Professional Instructor and Web Developer

Play Speed
  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x
202 Videos (13h 42m)
    • About the Instructor and the Course

      1:32
    • Downloading and Installing PHP with XAMPP

      2:33
    • Downloading and Installing Composer

      2:10
    • Downloading and Installing Virtual Box

      1:48
    • Downloading and Installing Vagrant

      2:01
    • Downloading and Installing Sublime Text 3(2)

      2:24
    • Downloading and Installing Github Shell(2)

      3:16
    • Downloading and Installing Node and NPM(2)

      3:27
    • Downloading and Installing Postman(2)

      2:48
    • Obtaining Laravel Using Composer

      2:06
    • Adding Homestead as a Dependency for The Project

      1:25
    • Preparing and Configuring Homestead

      4:19
    • Adding the Virtual Domain on The System(2)

      2:18
    • Using Vagrant to Manage the Homestead Virtual Machine(2)

      4:48
    • Keep The Project Updated

      3:32
    • Installing the Package Control(2)

      1:35
    • Creating and Using Projects(2)

      2:17
    • Installing and Using SublimeCodeIntel(2)

      2:59
    • Installing and Using SideBarEnhancement(2)

      2:07
    • Installing and Using SublimeLinter for PHP(2)

      2:15
    • Installing and Using PHPCompanion(2)

      4:00
    • Understanding the Resources(Models) and Its Relationships(2)

      4:14
    • Understanding the Main End Points for the RESTful API

      3:28
    • Discovering the Laravel Structure(2)

      7:29
    • Discovering PHP Artisan(2)

      4:53
    • Configuring the Environment Variables

      4:02
    • Understanding the Routes on Laravel(2)

      3:01
    • Creating Initial Structure for The Models and Its Migrations(2)

      4:44
    • Creating an Initial Basic Structure of Controllers(2)

      3:34
    • Creating the Initial Resource Routes for The Controllers

      6:50
    • Implementing the properties for Category

      2:16
    • Implementing the properties for Product

      3:45
    • Implementing the properties for Transaction

      1:16
    • Implementing the properties for User

      5:42
    • Implementing the relationships between models

      5:28
    • Solving a Common Issue with Migrations

      2:42
    • Implementing The Migration for Users

      2:27
    • Implementing The Migration for Categories

      1:09
    • Implementing The Migration for Products

      2:01
    • Implementing The Migration for Transactions

      1:36
    • Creating the Migration for The Pivot Table

      4:44
    • Creating The Factory for User

      3:22
    • Creating The Factory for Category

      1:25
    • Creating The Factory for Product

      3:51
    • Creating The Factory for Transaction

      4:52
    • Using The Factories from The DatabaseSeeder

      6:04
    • Executing The Migrations and The Seeder

      5:10
    • Implementing The Index Method for UserController

      2:51
    • Implementing The Show Method for UserController

      2:29
    • Implementing The Store Method for UserController

      9:29
    • Implementing The Update Method for UserController

      8:25
    • Implementing The Destroy Method for UserController

      1:38
    • Implementing The Index Method for BuyerController

      2:43
    • Implementing The Show Method for BuyerController

      1:34
    • Implementing The Index Method for SellerController

      2:15
    • Implementing The Show Method for SellerController

      1:32
    • Defining Mutators and Accessor for Models

      5:54
    • Generalizing The Response Methods

      8:51
    • Using The Generalized Methods

      3:09
    • Using The Generalized Methods for Error Responses

      1:53
    • Returning Validation Errors as a JSON Response

      4:36
    • Returning Model Not Found Errors as a JSON Response

      2:59
    • Handling AuthenticationException

      3:12
    • Handling AuthorizationException

      2:08
    • Handling NotFoundHttpException

      2:02
    • Handling MethodNotAllowedHttpException

      2:15
    • Handling General HttpException

      1:32
    • Catching Exceptions When Removing Related Resources

      4:10
    • Handling Unexpected Exceptions

      4:28
    • Using Implicit Model Binding for Some Methods

      2:50
    • Resolving Buyer Using Global Scopes

      6:24
    • Resolving Seller Using Global Scopes

      2:00
    • Modifying the Migrations for Soft Deleting

      2:15
    • Using soft Deleting for All the Models

      3:13
    • Implementing the Index Method for CategoryController

      3:09
    • Implementing the Show Method for CategoryController

      1:23
    • Implementing the Store Method for CategoryController

      3:54
    • Implementing the Update Method for CategoryController

      4:09
    • Implementing the Destroy Method for CategoryController

      2:01
    • Implementing the Index Method for ProductController

      2:25
    • Implementing the Show Method for ProductController

      1:15
    • Implementing the Index Method for TransactionCategoryController

      4:25
    • Implementing the Index Method for TransactionSellerController

      4:24
    • Implementing the Index Method for BuyerTransactionController

      2:54
    • Implementing the Index Method for BuyerProductController

      6:39
    • Implementing the Index Method for BuyerSellerController

      5:07
    • Implementing the Index Method for BuyerCategoryController

      5:30
    • Implementing the Index Method for CategoryProductController

      2:42
    • Implementing the Index Method for CategorySellerController

      3:42
    • Implementing the Index Method for CategoryTransactionController

      5:15
    • Implementing the Index Method for CategoryBuyerController

      5:23
    • Removing the Pivot Table from the Results

      1:47
    • Implementing the Index Method for SellerTransactionController

      3:12
    • Implementing the Index Method for SellerCategoryController

      2:21
    • Implementing the Index Method for SellerBuyerController

      3:03
    • Implementing the Index Method for SellerProductController

      2:50
    • Implementing the Store Method for SellerProductController

      7:30
    • Implementing the Update Method for SellerProductController

      7:18
    • Implementing the Destroy Method for SellerProductController

      2:15
    • [Challenge] Implementing the Index Operation of ProductTransaction

      4:23
    • [Challenge] Implementing the Index Operation of ProductBuyer

      4:17
    • [Challenge] Implementing the Index Operation of ProductCategory

      4:17
    • Implementing the Update Operation of ProductCategory

      7:41
    • Implementing the Destroy Operation of ProductCategory

      2:33
    • Implementing the Store Operation for ProductBuyerTransaction

      11:53
    • Handling the Products Availability Using Events

      3:12
    • Preparing the API for Images Uploading

      3:30
    • Storing an Image When Creating a Product

      4:10
    • Removing the Image When Deleting a Product

      2:31
    • Updating the Image When Editing a product

      4:25
    • Preparing the Project for Email Sending

      6:15
    • Implementing the Verification System

      5:37
    • Creating the Mailable for User Created

      1:47
    • Implementing the UserCreated Mailable

      4:26
    • Send Verification Email Using Events

      3:31
    • Solving the Problem with Factories

      2:50
    • Creating the Mailable for User Mail Changed

      1:18
    • Implementing the UserMailChanged Mailable

      2:03
    • Send Verification for Email Changed Using Events

      3:24
    • Re sending the Verification Email If Requested

      3:22
    • Dealing with Failing Prone Actions

      3:24
    • Using Markdown Mailables

      9:22
    • About the Middleware and How it Works

      5:34
    • Creating a Custom Middleware

      9:02
    • About the Rate Limiting and the Details

      4:20
    • Customizing the Response for “Too Many Attempts”

      3:23
    • About Transformers and Why to Use It

      5:35
    • Preparing the Project for Data Transforming

      3:11
    • Creating the Transformer for User

      7:35
    • Creating the Transformer for Seller and Buyer

      2:23
    • Creating the Transformer for Category

      1:19
    • Creating the Transformer for Transaction

      2:00
    • Creating the Transformer for Product

      2:45
    • Linking the Models with its Respective Transformer

      3:09
    • Returning the New Transformed Responses

      10:06
    • Sorting Results by Any Attribute

      6:17
    • Understanding an Issue with Sorted Responses

      3:08
    • Improving the Transformations to Solve the Problem

      3:30
    • Implementing the Solution Using Transformers

      2:44
    • Filtering Responses Based on Attributes

      6:41
    • About Pagination

      3:57
    • Paginating Already Built Collections

      8:26
    • Allowing Custom Page Size

      3:22
    • Implementing the Cache System

      4:13
    • The Caching System and the Query Parameters

      6:17
    • What is and Why to Use HATEOAS

      3:38
    • Implementing HATEOAS Hypermedia Controls for Category Instances

      6:42
    • Implementing HATEOAS Hypermedia Controls for Product Instances

      3:09
    • Implementing HATEOAS for Transaction Instances

      2:24
    • Implementing HATEOAS for User Instances

      1:56
    • Understanding Two Problems with Transformations and Validations

      2:38
    • Creating and Using a Middleware to Solve the Problem

      5:52
    • Solving the First Problem Using the Middleware

      4:03
    • Improving the Transformations to Solve the Second Problem

      2:38
    • Improving the Middleware to Solve the Second Problem

      7:53
    • Why is It Required for Our API

      2:28
    • Creating the Additional Authentication Structure

      3:02
    • Tuning Some Structures to Avoid Inconsistences

      3:35
    • About CSRF and Handling CSRF Exceptions

      5:40
    • Returning HTML and Redirections When Required

      9:18
    • About OAuth2 and Security on APIs

      3:51
    • What is Laravel Passport

      1:54
    • Preparing the Project to Use Laravel Passport

      1:58
    • Using the Migrations of Laravel Passport

      2:32
    • Installing Passport Definitively on the API

      2:59
    • Making Users Authenticatable Through API Tokens

      2:08
    • Registering the Required Routes

      3:20
    • Configuring the Authentication System

      1:37
    • Defining the Expiration Time for the Tokens

      3:23
    • Using client credentials Grant to Protect Some Routes

      6:17
    • How to Obtain and Use Tokens Using Client Credentials

      3:24
    • Protecting All the Routes

      5:36
    • Using the Password Grant Type

      6:09
    • Preparing the API to Use the Passport Components

      8:10
    • Creating the Views to Manage the Personal Tokens

      5:04
    • About the Personal Tokens and How to Use It

      2:40
    • Allowing the Management of API Clients

      7:55
    • About the Authorization Code Grant Type

      9:37
    • Using the Implicit Grant Type

      5:55
    • Refreshing Tokens

      5:18
    • What are Scopes on OAuth2?

      3:08
    • Registering some required scopes for the API

      5:50
    • Registering the Middleware to Check Scopes

      3:54
    • Restricting the Action that Needs the “purchase product” Scope

      4:42
    • Restricting the Actions that Need the “manage products” Scope

      5:27
    • Restricting the Actions that Need the “manage account” Scope

      3:51
    • Restricting the Actions that Need the “read general” Scope

      8:33
    • About the Final Security Layer

      3:41
    • What are Policies and Gates on Laravel

      4:04
    • Implementing the Restrictions Over Buyer

      7:42
    • Implementing the Restrictions over Seller

      7:15
    • The Restrictions over User

      7:32
    • Implementing the Restrictions over Transaction

      5:00
    • Implementing the Restrictions over Product

      5:04
    • Allowing All Actions for Admin Users

      6:14
    • Allowing Remaining Actions ONLY Admin Users Can Do

      8:42
    • About CORS

      4:10
    • Installing the CORS Package for Laravel

      1:34
    • Configuring the CORS Package

      3:34
    • Allowing CORS Only for the API

      4:17
    • Allowing CORS on Error Responses Too

      5:26
    • Thanks for Be Here

      1:41