¡New Section! CORS on Laravel - Skillshare

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 Lessons (13h 42m)
    • 1. About the Instructor and the Course

      1:32
    • 2. Downloading and Installing PHP with XAMPP

      2:33
    • 3. Downloading and Installing Composer

      2:10
    • 4. Downloading and Installing Virtual Box

      1:48
    • 5. Downloading and Installing Vagrant

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

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

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

      3:27
    • 9. Downloading and Installing Postman(2)

      2:48
    • 10. Obtaining Laravel Using Composer

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

      1:25
    • 12. Preparing and Configuring Homestead

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

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

      4:48
    • 15. Keep The Project Updated

      3:32
    • 16. Installing the Package Control(2)

      1:35
    • 17. Creating and Using Projects(2)

      2:17
    • 18. Installing and Using SublimeCodeIntel(2)

      2:59
    • 19. Installing and Using SideBarEnhancement(2)

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

      2:15
    • 21. Installing and Using PHPCompanion(2)

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

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

      3:28
    • 24. Discovering the Laravel Structure(2)

      7:29
    • 25. Discovering PHP Artisan(2)

      4:53
    • 26. Configuring the Environment Variables

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

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

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

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

      6:50
    • 31. Implementing the properties for Category

      2:16
    • 32. Implementing the properties for Product

      3:45
    • 33. Implementing the properties for Transaction

      1:16
    • 34. Implementing the properties for User

      5:42
    • 35. Implementing the relationships between models

      5:28
    • 36. Solving a Common Issue with Migrations

      2:42
    • 37. Implementing The Migration for Users

      2:27
    • 38. Implementing The Migration for Categories

      1:09
    • 39. Implementing The Migration for Products

      2:01
    • 40. Implementing The Migration for Transactions

      1:36
    • 41. Creating the Migration for The Pivot Table

      4:44
    • 42. Creating The Factory for User

      3:22
    • 43. Creating The Factory for Category

      1:25
    • 44. Creating The Factory for Product

      3:51
    • 45. Creating The Factory for Transaction

      4:52
    • 46. Using The Factories from The DatabaseSeeder

      6:04
    • 47. Executing The Migrations and The Seeder

      5:10
    • 48. Implementing The Index Method for UserController

      2:51
    • 49. Implementing The Show Method for UserController

      2:29
    • 50. Implementing The Store Method for UserController

      9:29
    • 51. Implementing The Update Method for UserController

      8:25
    • 52. Implementing The Destroy Method for UserController

      1:38
    • 53. Implementing The Index Method for BuyerController

      2:43
    • 54. Implementing The Show Method for BuyerController

      1:34
    • 55. Implementing The Index Method for SellerController

      2:15
    • 56. Implementing The Show Method for SellerController

      1:32
    • 57. Defining Mutators and Accessor for Models

      5:54
    • 58. Generalizing The Response Methods

      8:51
    • 59. Using The Generalized Methods

      3:09
    • 60. Using The Generalized Methods for Error Responses

      1:53
    • 61. Returning Validation Errors as a JSON Response

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

      2:59
    • 63. Handling AuthenticationException

      3:12
    • 64. Handling AuthorizationException

      2:08
    • 65. Handling NotFoundHttpException

      2:02
    • 66. Handling MethodNotAllowedHttpException

      2:15
    • 67. Handling General HttpException

      1:32
    • 68. Catching Exceptions When Removing Related Resources

      4:10
    • 69. Handling Unexpected Exceptions

      4:28
    • 70. Using Implicit Model Binding for Some Methods

      2:50
    • 71. Resolving Buyer Using Global Scopes

      6:24
    • 72. Resolving Seller Using Global Scopes

      2:00
    • 73. Modifying the Migrations for Soft Deleting

      2:15
    • 74. Using soft Deleting for All the Models

      3:13
    • 75. Implementing the Index Method for CategoryController

      3:09
    • 76. Implementing the Show Method for CategoryController

      1:23
    • 77. Implementing the Store Method for CategoryController

      3:54
    • 78. Implementing the Update Method for CategoryController

      4:09
    • 79. Implementing the Destroy Method for CategoryController

      2:01
    • 80. Implementing the Index Method for ProductController

      2:25
    • 81. Implementing the Show Method for ProductController

      1:15
    • 82. Implementing the Index Method for TransactionCategoryController

      4:25
    • 83. Implementing the Index Method for TransactionSellerController

      4:24
    • 84. Implementing the Index Method for BuyerTransactionController

      2:54
    • 85. Implementing the Index Method for BuyerProductController

      6:39
    • 86. Implementing the Index Method for BuyerSellerController

      5:07
    • 87. Implementing the Index Method for BuyerCategoryController

      5:30
    • 88. Implementing the Index Method for CategoryProductController

      2:42
    • 89. Implementing the Index Method for CategorySellerController

      3:42
    • 90. Implementing the Index Method for CategoryTransactionController

      5:15
    • 91. Implementing the Index Method for CategoryBuyerController

      5:23
    • 92. Removing the Pivot Table from the Results

      1:47
    • 93. Implementing the Index Method for SellerTransactionController

      3:12
    • 94. Implementing the Index Method for SellerCategoryController

      2:21
    • 95. Implementing the Index Method for SellerBuyerController

      3:03
    • 96. Implementing the Index Method for SellerProductController

      2:50
    • 97. Implementing the Store Method for SellerProductController

      7:30
    • 98. Implementing the Update Method for SellerProductController

      7:18
    • 99. Implementing the Destroy Method for SellerProductController

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

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

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

      4:17
    • 103. Implementing the Update Operation of ProductCategory

      7:41
    • 104. Implementing the Destroy Operation of ProductCategory

      2:33
    • 105. Implementing the Store Operation for ProductBuyerTransaction

      11:53
    • 106. Handling the Products Availability Using Events

      3:12
    • 107. Preparing the API for Images Uploading

      3:30
    • 108. Storing an Image When Creating a Product

      4:10
    • 109. Removing the Image When Deleting a Product

      2:31
    • 110. Updating the Image When Editing a product

      4:25
    • 111. Preparing the Project for Email Sending

      6:15
    • 112. Implementing the Verification System

      5:37
    • 113. Creating the Mailable for User Created

      1:47
    • 114. Implementing the UserCreated Mailable

      4:26
    • 115. Send Verification Email Using Events

      3:31
    • 116. Solving the Problem with Factories

      2:50
    • 117. Creating the Mailable for User Mail Changed

      1:18
    • 118. Implementing the UserMailChanged Mailable

      2:03
    • 119. Send Verification for Email Changed Using Events

      3:24
    • 120. Re sending the Verification Email If Requested

      3:22
    • 121. Dealing with Failing Prone Actions

      3:24
    • 122. Using Markdown Mailables

      9:22
    • 123. About the Middleware and How it Works

      5:34
    • 124. Creating a Custom Middleware

      9:02
    • 125. About the Rate Limiting and the Details

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

      3:23
    • 127. About Transformers and Why to Use It

      5:35
    • 128. Preparing the Project for Data Transforming

      3:11
    • 129. Creating the Transformer for User

      7:35
    • 130. Creating the Transformer for Seller and Buyer

      2:23
    • 131. Creating the Transformer for Category

      1:19
    • 132. Creating the Transformer for Transaction

      2:00
    • 133. Creating the Transformer for Product

      2:45
    • 134. Linking the Models with its Respective Transformer

      3:09
    • 135. Returning the New Transformed Responses

      10:06
    • 136. Sorting Results by Any Attribute

      6:17
    • 137. Understanding an Issue with Sorted Responses

      3:08
    • 138. Improving the Transformations to Solve the Problem

      3:30
    • 139. Implementing the Solution Using Transformers

      2:44
    • 140. Filtering Responses Based on Attributes

      6:41
    • 141. About Pagination

      3:57
    • 142. Paginating Already Built Collections

      8:26
    • 143. Allowing Custom Page Size

      3:22
    • 144. Implementing the Cache System

      4:13
    • 145. The Caching System and the Query Parameters

      6:17
    • 146. What is and Why to Use HATEOAS

      3:38
    • 147. Implementing HATEOAS Hypermedia Controls for Category Instances

      6:42
    • 148. Implementing HATEOAS Hypermedia Controls for Product Instances

      3:09
    • 149. Implementing HATEOAS for Transaction Instances

      2:24
    • 150. Implementing HATEOAS for User Instances

      1:56
    • 151. Understanding Two Problems with Transformations and Validations

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

      5:52
    • 153. Solving the First Problem Using the Middleware

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

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

      7:53
    • 156. Why is It Required for Our API

      2:28
    • 157. Creating the Additional Authentication Structure

      3:02
    • 158. Tuning Some Structures to Avoid Inconsistences

      3:35
    • 159. About CSRF and Handling CSRF Exceptions

      5:40
    • 160. Returning HTML and Redirections When Required

      9:18
    • 161. About OAuth2 and Security on APIs

      3:51
    • 162. What is Laravel Passport

      1:54
    • 163. Preparing the Project to Use Laravel Passport

      1:58
    • 164. Using the Migrations of Laravel Passport

      2:32
    • 165. Installing Passport Definitively on the API

      2:59
    • 166. Making Users Authenticatable Through API Tokens

      2:08
    • 167. Registering the Required Routes

      3:20
    • 168. Configuring the Authentication System

      1:37
    • 169. Defining the Expiration Time for the Tokens

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

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

      3:24
    • 172. Protecting All the Routes

      5:36
    • 173. Using the Password Grant Type

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

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

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

      2:40
    • 177. Allowing the Management of API Clients

      7:55
    • 178. About the Authorization Code Grant Type

      9:37
    • 179. Using the Implicit Grant Type

      5:55
    • 180. Refreshing Tokens

      5:18
    • 181. What are Scopes on OAuth2?

      3:08
    • 182. Registering some required scopes for the API

      5:50
    • 183. Registering the Middleware to Check Scopes

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

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

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

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

      8:33
    • 188. About the Final Security Layer

      3:41
    • 189. What are Policies and Gates on Laravel

      4:04
    • 190. Implementing the Restrictions Over Buyer

      7:42
    • 191. Implementing the Restrictions over Seller

      7:15
    • 192. The Restrictions over User

      7:32
    • 193. Implementing the Restrictions over Transaction

      5:00
    • 194. Implementing the Restrictions over Product

      5:04
    • 195. Allowing All Actions for Admin Users

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

      8:42
    • 197. About CORS

      4:10
    • 198. Installing the CORS Package for Laravel

      1:34
    • 199. Configuring the CORS Package

      3:34
    • 200. Allowing CORS Only for the API

      4:17
    • 201. Allowing CORS on Error Responses Too

      5:26
    • 202. Thanks for Be Here

      1:41