Laravel API Base

Warning! This API base will save you countless days of hard work. Please donate a smile to your friend.

About

Laravel API Base allows you to jump start your API development quickly, without time consuming installation and setup proces. Filled with best practice and will be maintained.

Features

Packages included

Installation

  • git clone git@srv.nazrol.tech:internal/laravel-api-base.git
  • composer install
  • cp .env.example .env
  • php artisan key:generate
  • update your database config at .env file
  • copy specific config from .env.example into .env file
  • php artisan migrate
  • php artisan db:seed
  • php artisan passport:install (Copy the client ID and client secret, update .env PASSWORDGRANT_CLIENT_ID and PASSWORDGRANT_CLIENT_SECRET)
  • php artisan config:clear
  • Login with username : admin@laravelapibase.test and password admin123
  • enjoy!

Access

API

Authentication API
Login
POST
Params (email, password)
https://laravel-api-base.test/api/v1/login
--
Get Authenticated User Info / Validate token
GET
Headers (Authorization : Bearer token)
https://laravel-api-base.test/api/v1/me
--
Refresh Access Token
POST
Headers (Authorization : Bearer token)
Params (refresh_token)
https://laravel-api-base.test/api/v1/refreshtoken
--
Logout current authenticated user
POST
Headers (Authorization : Bearer token)
https://laravel-api-base.test/api/v1/logout
Users API
List of Users
GET 
https://laravel-api-base.test/api/v1/users
--
Show single user
GET
https://laravel-api-base.test/api/v1/users/1
--
Create user
POST
https://laravel-api-base.test/api/v1/users
--
Update user
PUT
https://laravel-api-base.test/api/v1/users/1
--
Delete user
DELETE
https://laravel-api-base.test/api/v1/users/1
Roles API
List of Roles
GET 
https://laravel-api-base.test/api/v1/roles
--
Show single role
GET
https://laravel-api-base.test/api/v1/roles/1
--
Create role
POST
https://laravel-api-base.test/api/v1/roles
--
Update role
PUT
https://laravel-api-base.test/api/v1/roles/1
--
Delete role
DELETE
https://laravel-api-base.test/api/v1/roles/1
Permissions API
List of Permissions
GET 
https://laravel-api-base.test/api/v1/permissions
--
Show single permission
GET
https://laravel-api-base.test/api/v1/permissions/1
--
Create permission
POST
https://laravel-api-base.test/api/v1/permissions
--
Update permission
PUT
https://laravel-api-base.test/api/v1/permissions/1
--
Delete permission
DELETE
https://laravel-api-base.test/api/v1/permissions/1

How to

Dedicated query string filtering class

<?php

namespace App\Http\Filters;

use Illuminate\Database\Eloquent\Builder;

class UserFilters extends QueryFilters
{
    /**
     * Filter by latest.
     *
     * @param  string $order
     * @return Builder
     */
    public function latest($order = 'desc')
    {
        return $this->builder->orderBy('created_at', $order);
    }

    /**
     * Filter by email.
     *
     * @param  string $email
     * @return Builder
     */
    public function email($email)
    {
        return $this->builder->where('email', $email);
    }

    /**
     * Filter by name.
     *
     * @param  string $name
     * @return Builder
     */
    public function name($name)
    {
        return $this->builder->where('name', 'like', "%$name%");
    }
}

TODO