PHP code example of haseebmirza / laravel-api-response

1. Go to this page and download the library: Download haseebmirza/laravel-api-response 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/ */

    

haseebmirza / laravel-api-response example snippets


// Controller A
return response()->json(['status' => 'ok', 'result' => $users], 200);

// Controller B
return response()->json(['success' => true, 'data' => $post, 'msg' => 'Done']);

// Controller C
return response()->json(['error' => 'Not found'], 404);

return ApiResponse::success($users);
return ApiResponse::created($post);
return ApiResponse::notFound();

use HaseebMirza\ApiResponse\ApiResponse;

class UserController extends Controller
{
    public function index()
    {
        return ApiResponse::success(User::all(), 'Users retrieved');
    }

    public function store(StoreUserRequest $request)
    {
        $user = User::create($request->validated());
        return ApiResponse::created($user);
    }

    public function show(User $user)
    {
        return ApiResponse::success($user);
    }

    public function destroy(User $user)
    {
        $user->delete();
        return ApiResponse::noContent();
    }
}

return ApiResponse::success(
    ['user' => $user],
    'Profile loaded',
    200,
    ['version' => 'v1', 'source' => 'mobile'],
    ['request_id' => 'req_123', 'debug' => app()->isLocal()]
);

use HaseebMirza\ApiResponse\ApiResponse;

// Success (HTTP 200)
return ApiResponse::success($data, 'Operation successful');

// Success with custom status code
return ApiResponse::success($data, 'Accepted', 202);

// Success with extra metadata
return ApiResponse::success($data, 'OK', 200, [
    'version' => '2.1',
    'request_id' => 'req_abc123',
]);

// Success with custom top-level fields
return ApiResponse::success($data, 'OK', 200, [
    'version' => '2.1',
], [
    'request_id' => 'req_abc123',
    'debug' => true,
]);

// Created (HTTP 201)
return ApiResponse::created($resource);

// No Content (HTTP 204, empty body)
return ApiResponse::noContent();

// Error (HTTP 400)
return ApiResponse::error('Invalid request');

// Not Found (HTTP 404)
return ApiResponse::notFound('User not found');

// Unauthorized (HTTP 401)
return ApiResponse::unauthorized('Invalid credentials');

// Forbidden (HTTP 403)
return ApiResponse::forbidden();

// Validation Error (HTTP 422)
return ApiResponse::validationError($validator->errors());

// Server Error (HTTP 500)
return ApiResponse::serverError();

return ApiResponse::success($user, 'User fetched successfully');

$post = Post::create($request->validated());

return ApiResponse::created($post);

$validator = Validator::make($request->all(), [
    'email' => ['ils()) {
    return ApiResponse::validationError($validator->errors());
}

return ApiResponse::success(
    $order,
    'Order fetched',
    200,
    ['version' => 'v1'],
    ['request_id' => (string) Str::uuid(), 'trace_id' => 'trace_456']
);

$token = $user->createToken('api')->plainTextToken;

return ApiResponse::withToken(
    $token,
    $user,
    'Bearer',
    'Login successful',
    ['source' => 'mobile'],
    ['request_id' => 'req_login_123']
);

return ApiResponse::noContent();

$users = User::where('active', true)->paginate(15);

return ApiResponse::paginated($users, 'Active users');

return ApiResponse::paginated($users, 'Filtered users', [
    'filter' => 'active',
    'sort' => 'created_at',
]);

return ApiResponse::paginated($users, 'Filtered users', [
    'filter' => 'active',
], [
    'request_id' => 'req_abc123',
]);

// With user data
$token = $user->createToken('api')->plainTextToken;
return ApiResponse::withToken($token, $user);

// Token only
return ApiResponse::withToken($token);

// Custom token type
return ApiResponse::withToken($apiKey, $user, 'API-Key');

// Token response with metadata and custom top-level fields
return ApiResponse::withToken($token, $user, 'Bearer', 'Authenticated successfully', [
    'request_source' => 'mobile',
], [
    'request_id' => 'req_abc123',
]);

use HaseebMirza\ApiResponse\Traits\ApiResponder;

class Controller extends BaseController
{
    use ApiResponder;
}

class OrderController extends Controller
{
    public function index()
    {
        $orders = Order::paginate(20);
        return $this->paginatedResponse($orders, 'Orders retrieved');
    }

    public function store(StoreOrderRequest $request)
    {
        $order = Order::create($request->validated());
        return $this->createdResponse($order);
    }

    public function show(Order $order)
    {
        return $this->successResponse($order);
    }

    public function update(UpdateOrderRequest $request, Order $order)
    {
        $order->update($request->validated());
        return $this->successResponse($order, 'Order updated');
    }

    public function destroy(Order $order)
    {
        $order->delete();
        return $this->noContentResponse();
    }
}

return $this->successResponse(
    $order,
    'Order loaded',
    200,
    ['version' => 'v1'],
    ['request_id' => 'req_order_123']
);

Route::get('/test-package', function () {
    return \HaseebMirza\ApiResponse\ApiResponse::success(
        ['ok' => true],
        'Package working',
        200,
        ['version' => 'v1'],
        ['request_id' => 'req_demo_123']
    );
});