Today in the modern web development, the more popular model is based on API development, you can create services through mobile phones or websites. Laravel is one of the best frameworks for creating API-based projects that provide high-speed development for large communities around the world. Laravel's built-in projects include Composer, allowing you to add some packages to make development faster. When you decide to launch a new API-based project, the following useful packages must be installed.

1. Barryvdh / laravel-debugbar

Debugging is a very important part of the development process, by analyzing the problem, to find the problem and solve the problem. Laravel debugbar is an extension that allows you to locate problems more quickly and easily during development. This extension package encapsulates PHP Debug Bar in Laravel 5    , which uses a ServiceProvider to register and output debugbar information. If you want to try it, click


2. Tymondesign / jwt-auth

Authentication is a process of verifying who you are and confirming the identity of the user after logging in. For the sake of simplicity, you should use JWT as the standard method for the certification process. JWT (JSON Web Token)  is a compact, URL-safe proxy when you need to move data between two parties ,  here  is an extension of JWT's popular laravel package.


3. Zizaco / entrust

ACL (Access Control List) is a collection of operations, it tells the system for each user's access. ACLs contain the roles and permissions for managing access to specific users. Laravel and the default ACL are named Gate. Gate is the name of the class and appearance, but in my opinion, Gate is a bit tricky, so let's go to packagist ( ) and find some simple packages to manage the ACL. There are many packages ACL,  zizaco / delegate is the most popular ACL laravel package you should go.


4. Spatie / laravel-fractal

For an API-based project, the most important thing is the output of the API response data. Laravel uses Eloquent to output json or array formatted data. If you just look up one or two tables, that's not a big problem, but if you're using more than five tables, that's really painful. Fractal gives you a great solution that provides rules for presentation and conversion for complex data output. Spatie / laravel-fractal  Using facades for your project integration into Laravel, give it a try!


5. Webpatser / laravel-uuid

The UUID (Universal Unique Identifier) ​​is a set of 128 bits of characters, including letters and numbers, each set is unique, space and time guaranteed unique, you can  learn more here . UUID protects the system when users access the data. Webpatser / laravel-uuid is a Laravel third-party package that generates UUIDs according to the RFC 4122 standard, which you can find here .


6. Intervention / image

Intervention Image  is a PHP image processing and manipulation library that provides a simpler and more expressive way to create, edit and composite images. This package includes service providers and facades for easy integration with laravel


7. Davibennun / laravel-push-notification

Davibennun / laravel-push-notification is an instant text message sent directly to the user's mobile display. It can increase the participation rate, improve user retention. Not only can you help drive the activities of your message subject, but it can also help increase the return you see in your application. Push notifications is the easiest extension package to send push notifications to devices, as well as push notifications for APNS (Apple) and GCM (Google).


8. spatie / laravel-backup

The last important thing in the project always backs up your data. The laravel extension is called  laravel-backup and will create a backup of your application. The backup is a zip file that contains all the files in the directory you specify As well as database dumps.The backup can be stored on any file system that you have configured on the project. You can back up your application to multiple file systems at once.