PHP code example of moaalaa / laravel-api-responder

1. Go to this page and download the library: Download moaalaa/laravel-api-responder library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

moaalaa / laravel-api-responder example snippets


MoaAlaa\ApiResponder\ApiResponderServiceProvider::class,



namespace App\Http\Controllers;

use MoaAlaa\ApiResponder\ApiResponder;

class HomeController extends Controller
{
    use ApiResponder;

    public function index()
    {

    }
}



namespace App\Http\Controllers;

use App\User;
use MoaAlaa\ApiResponder\ApiResponder;

class HomeController extends Controller
{
    use ApiResponder;

    public function index()
    {
        return $this->api()->response(User::first());
    }
}



namespace App\Http\Controllers;

use App\User;
use MoaAlaa\ApiResponder\ApiResponder;

class HomeController extends Controller
{
    use ApiResponder;

    public function index()
    {
        // $this->api()->response($data, $error = null, int $code = 200, $additional = [], $wrap = 'payload');

        $this->api()->response(User::first(), null, 200, function () {
            return ['foo' => 'bar'];
        }, 'baz');

        return $this->api()->response(User::first());
    }
}



namespace App\Http\Controllers;

use App\User;
use MoaAlaa\ApiResponder\ApiResponder;

class HomeController extends Controller
{
    use ApiResponder;

    public function index()
    {
        $users = User::where(...)->take(...)->get();
        return $this->api()->responseWith($users);
    }
}



namespace App\Http\Controllers;

use App\User;
use MoaAlaa\ApiResponder\ApiResponder;

class HomeController extends Controller
{
    use ApiResponder;

    public function index()
    {
        return $this->api()->response(User::paginate($this->api()->getPaginateLimit()));
    }
}



namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use MoaAlaa\ApiResponder\ApiResponder;

class AppServiceProvider extends ServiceProvider
{
    use ApiResponder;

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        $this->api()->setPaginationLimit(20);
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        //
    }
}



namespace App\Http\Controllers;

use App\User;
use MoaAlaa\ApiResponder\ApiResponder;

class HomeController extends Controller
{
    use ApiResponder;

    public function index()
    {   
        // Default Pagination Limit 
        return $this->api()->response(User::paginate($this->api()->getPaginateLimit()));
        
        // Run-Time Set Pagination Limit 
        return $this->api()->setPaginateLimit(50)->response(User::paginate($this->api()->getPaginateLimit()));
    }
}



// Simple User Api Login Example
namespace App\Http\Controllers\Auth;

use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
use App\User;
use MoaAlaa\ApiResponder\ApiResponder;

class LoginController extends Controller
{
    use ApiResponder;

    public function login(Request $request)
    {
        if (! $token = auth()->attempt($request->only(['email', 'password']))) {
            return $this->api()->error($token, Response::HTTP_NOT_FOUND)
        }

        return $this->api()->response(['token' => $token]);
    }
}



// Simple User Api Login Example
namespace App\Http\Controllers\Auth;

use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
use App\User;
use MoaAlaa\ApiResponder\ApiResponder;

class LoginController extends Controller
{
    use ApiResponder;

    public function login(Request $request)
    {
        try {
            $request->validate(...);

            if (! $token = auth()->attempt($request->only(['email', 'password']))) {
                return $this->api()->error($token, Response::HTTP_NOT_FOUND)
            }

            return $this->api()->response(['token' => $token]);
        
        } catch(\Exception $ex) {
            return $this->api()->safeError($ex);
        }

    }
}



// Simple User Api Login Example
namespace App\Http\Controllers\Auth;

use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
use App\User;
use MoaAlaa\ApiResponder\ApiResponder;

class LoginController extends Controller
{
    use ApiResponder;

    public function login(Request $request)
    {
        try {
            $validated = $this->api()->validate([
                'email' => '



namespace App\Http\Controllers;

use App\User;
use MoaAlaa\ApiResponder\ApiResponder;

class HomeController extends Controller
{
    use ApiResponder;

    public function index()
    {
        return $this->api()->with(['foo' => 'bar'])->response(User::first());
    }
}



namespace App\Http\Controllers;

use App\User;
use MoaAlaa\ApiResponder\ApiResponder;

class HomeController extends Controller
{
    use ApiResponder;

    public function index()
    {
        return $this->api()->withFoo('bar')->response(User::first()); // ->withFoo('bar') Will Convert To ['foo' => 'bar']
        return $this->api()->withFoo(['bar', 'baz'])->response(User::first()); // ->withFoo(['bar', 'baz']) Will Convert To ['foo' => ['bar', 'baz']]
    }
}



namespace App\Http\Controllers;

use App\User;
use MoaAlaa\ApiResponder\ApiResponder;

class HomeController extends Controller
{
    use ApiResponder;

    public function index()
    {
        return $this->api()->getWrapping(); // "payload" is The Default
    }
}



namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use MoaAlaa\ApiResponder\ApiResponder;

class AppServiceProvider extends ServiceProvider
{
    use ApiResponder;

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        $this->api()->setWrapping('foo');
        $this->api()->wrapping('foo');
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        //
    }
}



namespace App\Http\Controllers;

use App\User;
use MoaAlaa\ApiResponder\ApiResponder;

class HomeController extends Controller
{
    use ApiResponder;

    public function index()
    {
        // return $this->api()->getWrapping(); // "foo"

        return $this->api()->response(...); // Now All Response Data Will Be In "foo" Key String
        
        // Run-Time Set Wrapping
        return $this->api()->setWrapping('bar')->response(...); // Now All Response Data Will Be In "bar" Key String
        
        // Run-Time Set Wrapping
        return $this->api()->wrapping('baz')->response(...); // Now All Response Data Will Be In "baz" Key String
    }
}



namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\User;
use App\Post;
use App\Setting;
use MoaAlaa\ApiResponder\ApiResponder;

class HomeController extends Controller
{
    use ApiResponder;

    public function index()
    {
        $this->api()
        ->with(['posts'=> Post::all()])
        ->withSettings(Setting::all())
        ->wrapping('myData')
        ->response(User::paginate($this->api()->getPaginateLimit()), null, 200, function () {
            return ['token' => auth()->user()->token];
        });
    }
}