Get started with building APIs with Laravel

  • Share this:
Get started with building APIs with Laravel

In this tutorial, we'll be using an open-source library for building our next API with Laravel.

Who's this for?

Developers who create and develop APIs on daily basis and have to repeat and go through several steps for setting up things every single time. This boilerplate will definitely cut them some slack and help them to keep going with the development like breeze.

Create new Laravel API

For this short tutorial, we'll be using a simple boilerplate for developing Laravel API.

This package is build on top of the following

Create a new Laravel API boilerplate by using the following command in your projects directory

Also Read: Standardise API responses in Laravel

composer create-project usamamuneerchaudhary/laravel-api-boilerplate twt-api

It will create and setup a simple boilerplate app twt-api for you pre-installed with some basic dependencies and codebase required to keep you going.

Setting up the project is easier, just follow along with the file.

Dig In

Now let's head over to our project directory and see what we got here.

This API boilerplate comes in with the following pre-built setup

  • Laravel Passport for Authentication
  • Custom Roles & Permissions wrapper
  • CORS Middleware
  • CRUD Scaffolding
  • Ready to use Auth Controllers
  • Ready to use Custom Validations
  • Ready to use Custom Auth Notifications
  • Custom Firewall
  • Complete set of Auth Endpoints
  • and many more.

Directory Structures

All of your controllers, notifications, requests are namespaced under API followed by the module folder. For instance, in case of Auth, all files must be inside of API\Auth directory. It's totally upto you if you want to follow this convention or not.


Auth notifications have been setup already to reduce more hassle for you. You can find these under App\Notifications\API\Auth namespace. Currently there're following notifications for Auth module.

  • User Registration
  • Password Reset

You can modify messages as per your requirements.

CRUD Scaffolding

A simple CRUD Scaffolding package comes built-in with this boilerplate. It saves you tons of time in creating files. This package comes with a custom php artisan commands for creating different resources.

Make sure to publish the library's configuration

php artisan vendor:publish --tag=laravel-crud-scaffold

For instance if you wish to scaffold a Model, you can do something like

php artisan mbt:scaffold Model

This command will generate the following files for you like a breeze.

Roles & Permissions

This boilerplate utilizes a simple wrapper for maintaining Roles & Permission for your Laravel API.

Read more setting up Roles & Permissions in Laravel

Creating Endpoints

You can create your custom endpoints in routes/api.php under auth:api middleware group.

Handling CORS

This boilerplate API comes in with a CORS package to ease your worries. Just use the cors middleware on the required routes where necessary.

Default Endpoints

  • Login: POST api/v1/login
  • Register: POST api/v1/register
  • Recover POST api/v1/recover
  • Reset POST api/v1/reset
  • Find Reset Token GET api/v1/reset/{token}
  • Logout GET api/v1/logout
  • Verify Email api/v1/user/verify/email/{token}

You can change the API route prefix in RouteServiceProvider.php if required. Currently it's been set to api/v1

Start Building APIs

Well that's it for this tut, you can start building your next-gen API using this boilerplate. Also, if you've any feedbacks or comments for improvements, you're always welcome to share your thoughts in the comment section.

Github Repo

Usama Muneer

Usama Muneer

A web enthusiastic, self-motivated & detail-oriented professional Full-Stack Web Developer from Karachi, Pakistan with experience in developing applications using JavaScript, WordPress & Laravel specifically. Loves to write on different web technologies with an equally useful skill to make some sense out of it.