You must be logged in to take this course → LOGIN | REGISTER NOW
Build a RESTful API for a market system using Laravel and dominates the challenging RESTful skills with Laravel
What you’ll learn
- Create your own projects with Laravel (not only RESTful APIs)
-
Make the most of your work tools (Sublime Text 3, Git, Github, Composer, PHP artisan and Laravel)
-
Generate and maintain the structure of the database in an automated way with Laravel and the PHP Artisan console
- Use PHP Artisan effectively and be much more efficient
- Create and configure your own local development environment
- Properly configure your development environment for all your projects
- Hone the main HTTP methods/verbs for HTTP and RESTful APIs
- Use free professional tools to improve your productivity
Course Curriculum
Introduction | |||
About the Instructor and the Course | 00:00:00 | ||
Taking Advantage of the Course and Contents | 00:00:00 | ||
Downloading and Installing the Tools to Develop the RESTful API with Laravel | |||
Downloading and Installing PHP with XAMPP | 00:00:00 | ||
Downloading and Installing Composer | 00:00:00 | ||
Downloading and Installing Virtual Box | 00:00:00 | ||
Downloading and Installing Vagrant | 00:00:00 | ||
Downloading and Installing Sublime Text 3 | 00:00:00 | ||
Downloading and Installing Github Shell | 00:00:00 | ||
Downloading and Installing Node and NPM | 00:00:00 | ||
Downloading and Installing Postman to Test the Laravel RESTful API | 00:00:00 | ||
Creating and Setting the Initial Structure of Laravel for the RESTful API | |||
Obtaining Laravel Using Composer | 00:00:00 | ||
Adding Laravel Homestead as a Dependency for The Laravel Project | 00:00:00 | ||
Preparing and Configuring Laravel Homestead | 00:00:00 | ||
Adding the Virtual Domain on The System | 00:00:00 | ||
Using Vagrant to Manage the Laravel Homestead Virtual Machine | 00:00:00 | ||
Exercise Find out how to go out from the Virtual Machine | 00:00:00 | ||
Keep The Laravel Project Updated | 00:00:00 | ||
Configuring and Using Sublime Text 3 to Develop the RESTful API with Laravel | |||
Installing the Package Control | 00:00:00 | ||
Creating and Using Projects | 00:00:00 | ||
Installing and Using SublimeCodeIntel to Resolve Laravel and RESTful API classes | 00:00:00 | ||
Installing and Using SideBarEnhancement | 00:00:00 | ||
Installing and Using SublimeLinter for PHP | 00:00:00 | ||
Installing and Using PHPCompanion to Auto-import Laravel Definitions | 00:00:00 | ||
Understanding the Case Study for the RESTful API | |||
Understanding the RESTful API Resources (Models) and its Relationships | 00:00:00 | ||
Understanding the Main End-Points for the RESTful API | 00:00:00 | ||
Discovering and Configuring the Laravel Structure for the RESTful API | |||
Discovering the Laravel Structure | 00:00:00 | ||
Discovering the Laravel PHP Artisan Commands | 00:00:00 | ||
Configuring the Laravel Environment Variables | 00:00:00 | ||
Understanding the Laravel Routes System for RESTful APIs | 00:00:00 | ||
Creating the Initial Laravel Components for the RESTful API | |||
How to Solve Common Errors During the Development of the RESTful API | 00:00:00 | ||
Creating Initial Laravel Structures for The Models and Its Migrations | 00:00:00 | ||
Creating an Initial Laravel Structure for The Controllers | 00:00:00 | ||
Creating Some End-Point for the RESTful API Using Laravel Resource Routes | 00:00:00 | ||
Implementing the RESTful API Models and its Relationships using Laravel Eloquent | |||
Implementing The Properties for Category | 00:00:00 | ||
Implementing The Properties for Product | 00:00:00 | ||
Implementing The Properties for Transaction | 00:00:00 | ||
Implementing The Properties for User | 00:00:00 | ||
Implementing The Relationships Between Models | 00:00:00 | ||
Creating the Database Structure Using Migrations from Laravel | |||
Solving a Common Issue with the Laravel Migrations | 00:00:00 | ||
Implementing The Migration for Users | 00:00:00 | ||
Implementing The Migration for Categories | 00:00:00 | ||
Implementing The Migration for Products | 00:00:00 | ||
Implementing The Migration for Transactions | 00:00:00 | ||
Creating the Migration for The Pivot Table | 00:00:00 | ||
Creating the Laravel Factories for Database Seeding | |||
Creating The Laravel Factory for User | 00:00:00 | ||
Creating The Factory for Category | 00:00:00 | ||
Creating The Factory for Product | 00:00:00 | ||
Creating The Factory for Transaction | 00:00:00 | ||
Using The Factories from The DatabaseSeeder of Laravel | 00:00:00 | ||
Executing The Migrations and Seeder using Artisan from Laravel | 00:00:00 | ||
Implementing the Operations for UserController | |||
Implementing The Index Method for UserController | 00:00:00 | ||
Implementing The Show Method for UserController | 00:00:00 | ||
Implementing The Store Method for UserController | 00:00:00 | ||
Implementing The Update Method for UserController | 00:00:00 | ||
Implementing The Destroy Method for UserController | 00:00:00 | ||
Implementing the operations for Buyer | |||
Implementing The Index Method for BuyerController | 00:00:00 | ||
Implementing The Show Method for BuyerController | 00:00:00 | ||
Implementing the operations for Seller | |||
Implementing The Index Method for SellerController | 00:00:00 | ||
Implementing The Show Method for SellerController | 00:00:00 | ||
Improving the current RESTful API operations | |||
Defining Mutators and Accessor for Models | 00:00:00 | ||
Generalizing The Response Methods | 00:00:00 | ||
Using The Generalized Methods | 00:00:00 | ||
Using The Generalized Methods for Error Responses | 00:00:00 | ||
Handling Errors and Exceptions with the Laravel Handler | |||
Returning Validation Errors as a JSON Response | 00:00:00 | ||
Returning Model Not Found Errors as a JSON Response | 00:00:00 | ||
Handling AuthenticationException | 00:00:00 | ||
Handling AuthorizationException | 00:00:00 | ||
Handling NotFoundHttpException | 00:00:00 | ||
Handling MethodNotAllowedHttpException | 00:00:00 | ||
Handling General HttpException | 00:00:00 | ||
Catching Exceptions When Removing Related Resources | 00:00:00 | ||
Handling Unexpected Exceptions | 00:00:00 | ||
Implicit Model Binding with Routes and Methods | |||
Using The Laravel Implicit Model Binding for Some Methods | 00:00:00 | ||
Resolving Buyer Using Laravel Global Scopes | 00:00:00 | ||
Resolving Seller Using Laravel Global Scopes | 00:00:00 | ||
Implementing Soft Deleting for All the Models | |||
Modifying the Migrations for Soft Deleting | 00:00:00 | ||
Using soft Deleting for All the Models | 00:00:00 | ||
Implementing the Operations for Category | |||
Implementing the Index Method for CategoryController | 00:00:00 | ||
Implementing the Show Method for CategoryController | 00:00:00 | ||
Implementing the Store Method for CategoryController | 00:00:00 | ||
Implementing the Update Method for CategoryController | 00:00:00 | ||
Implementing the Destroy Method for CategoryController | 00:00:00 | ||
Implementing the Operations for Product | |||
Implementing the Index Method for ProductController | 00:00:00 | ||
Implementing the Show Method for ProductController | 00:00:00 | ||
[Exercises] Implementing the Operations for Transaction | |||
Implementing the Index Method for TransactionController | 00:00:00 | ||
Implementing the Show Method for TransactionController | 00:00:00 | ||
Implementing Complex Operations within Transaction | |||
Implementing the Index Method for TransactionCategoryController | 00:00:00 | ||
Implementing the Index Method for TransactionSellerController | 00:00:00 | ||
Implementing Complex Operations for Buyer | |||
Implementing the Index Method for BuyerTransactionController | 00:00:00 | ||
Implementing the Index Method for BuyerProductController | 00:00:00 | ||
Implementing the Index Method for BuyerSellerController | 00:00:00 | ||
Implementing the Index Method for BuyerCategoryController | 00:00:00 | ||
Implementing Complex Operations for Category | |||
Implementing the Index Method for CategoryProductController | 00:00:00 | ||
Implementing the Index Method for CategorySellerController | 00:00:00 | ||
Implementing the Index Method for CategoryTransactionController | 00:00:00 | ||
Implementing the Index Method for CategoryBuyerController | 00:00:00 | ||
Removing the Pivot Table from the Results | 00:00:00 | ||
Implementing Complex Operations for Seller | |||
Implementing the Index Method for SellerTransactionController | 00:00:00 | ||
Implementing the Index Method for SellerCategoryController | 00:00:00 | ||
Implementing the Index Method for SellerBuyerController | 00:00:00 | ||
Implementing the Index Method for SellerProductController | 00:00:00 | ||
Implementing the Store Method for SellerProductController | 00:00:00 | ||
Implementing the Update Method for SellerProductController | 00:00:00 | ||
Implementing the Destroy Method for SellerProductController | 00:00:00 | ||
Implementing Complex Operations for Product | |||
[Challenge] Implementing the Index Operation of ProductTransaction | 00:00:00 | ||
[Challenge] Implementing the Index Operation of ProductBuyer | 00:00:00 | ||
[Challenge] Implementing the Index Operation of ProductCategory | 00:00:00 | ||
Implementing the Update Operation of ProductCategory | 00:00:00 | ||
Implementing the Destroy Operation of ProductCategory | 00:00:00 | ||
Implementing the Store Operation for ProductBuyerTransaction | 00:00:00 | ||
Handling the Products Availability Using Events | 00:00:00 | ||
Adding an Image for Products | |||
Preparing the API for Images Uploading | 00:00:00 | ||
Storing an Image When Creating a Product | 00:00:00 | ||
Removing the Image When Deleting a Product | 00:00:00 | ||
Updating the Image When Editing a product | 00:00:00 | ||
Sending Email for Users Accounts Verification | |||
Preparing the Laravel Project for Email Sending | 00:00:00 | ||
Implementing the Verification System | 00:00:00 | ||
Creating the Laravel Mailable for User Created | 00:00:00 | ||
Implementing the UserCreated Mailable | 00:00:00 | ||
Send Verification Email Using Events | 00:00:00 | ||
Solving the Problem with Factories | 00:00:00 | ||
Creating the Mailable for User Mail Changed | 00:00:00 | ||
Implementing the UserMailChanged Mailable | 00:00:00 | ||
Send Verification for Email Changed Using Events | 00:00:00 | ||
Re-sending the Verification Email If Requested | 00:00:00 | ||
Dealing with Failing-Prone Actions | 00:00:00 | ||
Using Laravel Markdown Mailables | 00:00:00 | ||
The Middleware and the Rate Limiting | |||
About the Middleware and How it Works in Laravel | 00:00:00 | ||
Creating a Custom Middleware | 00:00:00 | ||
About the Rate Limiting in Laravel and the Details | 00:00:00 | ||
[Optional] Customizing the Response for “Too Many Attempts” | 00:00:00 | ||
Transforming Responses with PHP Fractal for Security and Compatibility | |||
About Transformers and Why to Use It | 00:00:00 | ||
Preparing the Laravel Project for Data Transforming | 00:00:00 | ||
Creating the Transformer for User | 00:00:00 | ||
Creating the Transformer for Seller and Buyer | 00:00:00 | ||
Creating the Transformer for Category | 00:00:00 | ||
Creating the Transformer for Transaction | 00:00:00 | ||
Creating the Transformer for Product | 00:00:00 | ||
Linking the Models with its Respective Transformer | 00:00:00 | ||
Returning the New Transformed Responses | 00:00:00 | ||
Sorting and Filtering Results Based on Query Parameters | |||
Sorting Results by Any Attribute | 00:00:00 | ||
Understanding an Issue with Sorted Responses | 00:00:00 | ||
Improving the Transformations to Solve the Problem | 00:00:00 | ||
Implementing the Solution Using Transformers | 00:00:00 | ||
Filtering Responses Based on Attributes | 00:00:00 | ||
Pagination of Results | |||
About Pagination | 00:00:00 | ||
Paginating Already Built Collections | 00:00:00 | ||
Allowing Custom Page Size | 00:00:00 | ||
Caching Results with Laravel Cache System | |||
Implementing the Cache System | 00:00:00 | ||
The Caching System and the Query Parameters | 00:00:00 | ||
Implementing HATEOAS Hypermedia Controls | |||
What is and Why to Use HATEOAS | 00:00:00 | ||
Implementing HATEOAS Hypermedia Controls for Category Instances | 00:00:00 | ||
Implementing HATEOAS Hypermedia Controls for Product Instances | 00:00:00 | ||
Implementing HATEOAS for Transaction Instances | 00:00:00 | ||
Implementing HATEOAS for User Instances | 00:00:00 | ||
[Exercise] Implementing HATEOAS for Buyer | 00:00:00 | ||
[Exercise] Implementing HATEOAS for Seller | 00:00:00 | ||
The Transformations and the Validations | |||
Understanding Two Problems with Transformations and Validations | 00:00:00 | ||
Creating and Using a Middleware to Solve the Problem | 00:00:00 | ||
Solving the First Problem Using the Middleware | 00:00:00 | ||
Improving the Transformations to Solve the Second Problem | 00:00:00 | ||
Improving the Middleware to Solve the Second Problem | 00:00:00 | ||
Preparing the API for User Authentication Using Sessions | |||
Why is It Required for Our API | 00:00:00 | ||
Creating the Additional Authentication Structure | 00:00:00 | ||
Tuning Some Structures to Avoid Inconsistences | 00:00:00 | ||
About CSRF and Handling CSRF Exceptions in Laravel | 00:00:00 | ||
Returning HTML and Redirections When Required | 00:00:00 | ||
Using Laravel Passport to Implement the Initial Security Layer with OAuth2 | |||
About OAuth2 and Security on APIs | 00:00:00 | ||
What is Laravel Passport | 00:00:00 | ||
Preparing the Laravel Project to Use Laravel Passport | 00:00:00 | ||
Using the Migrations of Laravel Passport | 00:00:00 | ||
Installing Laravel Passport Definitively on the API | 00:00:00 | ||
Making Users Authenticatable Through API Tokens | 00:00:00 | ||
Registering the Required Routes | 00:00:00 | ||
Configuring the Authentication System | 00:00:00 | ||
Defining the Expiration Time for the Tokens | 00:00:00 | ||
Using client_credentials Grant to Protect Some Routes | 00:00:00 | ||
How to Obtain and Use Tokens Using Client Credentials | 00:00:00 | ||
Protecting All the Routes | 00:00:00 | ||
Using the Password Grant Type | 00:00:00 | ||
Preparing the API to Use the Passport Components | 00:00:00 | ||
Creating the Views to Manage the Personal Tokens | 00:00:00 | ||
About the Personal Tokens and How to Use It | 00:00:00 | ||
Allowing the Management of API Clients | 00:00:00 | ||
About the Authorization Code Grant Type | 00:00:00 | ||
Using the Implicit Grant Type | 00:00:00 | ||
Refreshing Tokens | 00:00:00 | ||
Restricting OAuth2 Clients Using Scopes | |||
What are Scopes on OAuth2? | 00:00:00 | ||
Registering Some Required Scopes for the API | 00:00:00 | ||
Registering the Laravel Passport Middleware to Check Scopes | 00:00:00 | ||
Restricting the Action that Needs the “purchase-product” Scope | 00:00:00 | ||
Restricting the Actions that Need the “manage-products” Scope | 00:00:00 | ||
Restricting the Actions that Need the “manage-account” Scope | 00:00:00 | ||
Restricting the Actions that Need the “read-general” Scope | 00:00:00 | ||
Implementing the Final Security Layer Using Policies and Gates of Laravel | |||
About the Final Security Layer | 00:00:00 | ||
What are Policies and Gates on Laravel? | 00:00:00 | ||
Implementing the Restrictions Over Buyer | 00:00:00 | ||
Implementing the Restrictions Over Seller | 00:00:00 | ||
The Restrictions over User | 00:00:00 | ||
Implementing the Restrictions Over Transaction | 00:00:00 | ||
Implementing the Restrictions Over Product | 00:00:00 | ||
Allowing All Actions for Admin Users | 00:00:00 | ||
Allowing Remaining Actions ONLY Admin Users Can Do | 00:00:00 | ||
CORS for Laravel | |||
About CORS | 00:00:00 | ||
Installing the CORS Package for Laravel | 00:00:00 | ||
Configuring the CORS Package | 00:00:00 | ||
Allowing CORS Only for the API | 00:00:00 | ||
Allowing CORS on Error Responses Too | 00:00:00 | ||
[Optional] Upgrading to Laravel 5.5 | |||
About the Upgrading Process to Laravel 5.5 | 00:00:00 | ||
Upgrading to Laravel 5.5 Along With Dependencies | 00:00:00 | ||
Upgrading the Source Code According to Laravel 5.5 | 00:00:00 | ||
[Optional] Upgrading to Laravel 5.6 | |||
Preparing the Environment to Upgrade | 00:00:00 | ||
Obtaining Laravel 5.6 | 00:00:00 | ||
Installing Updated Dependencies | 00:00:00 | ||
Solving Issues and Updating the Project Structure | 00:00:00 | ||
[Optional] Upgrading to Laravel 5.7 | |||
Preparing the development environment to upgrade | 00:00:00 | ||
Installing Laravel 5.7 an upgrading dependencies for the RESTful API | 00:00:00 | ||
Upgrading the components and structures | 00:00:00 | ||
Conclusion | |||
List of Pending Topics | 00:00:00 | ||
Thanks for Be Here! | 00:00:00 |
Course Reviews
No Reviews found for this course.
5 STUDENTS ENROLLED