1. Go to this page and download the library: Download anyo-lab/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/ */
use ApiResponse\ApiResponse;
class UserController extends Controller
{
public function index(ApiResponse $apiResponse)
{
$users = User::paginate(10);
return $apiResponse->paginated($users, 'Users retrieved successfully');
}
public function store(Request $request, ApiResponse $apiResponse)
{
$user = User::create($request->validated());
return $apiResponse->created($user, 'User created successfully');
}
}
use ApiResponse\ApiResponse;
class UserController extends Controller
{
public function index(ApiResponse $apiResponse)
{
$users = User::paginate(10);
return $apiResponse->paginated($users, 'Users retrieved successfully');
}
public function store(Request $request, ApiResponse $apiResponse)
{
$user = User::create($request->validated());
return $apiResponse->created($user, 'User created successfully');
}
}
use ApiResponse\Traits\ApiResponseTrait;
class UserController extends Controller
{
use ApiResponseTrait;
public function index()
{
$users = User::paginate(10);
return $this->paginatedResponse($users, 'Users retrieved successfully');
}
public function store(Request $request)
{
$user = User::create($request->validated());
return $this->createdResponse($user, 'User created successfully');
}
}
use ApiResponse\Facades\ApiResponse;
class UserController extends Controller
{
public function index()
{
$users = User::paginate(10);
return ApiResponse::paginated($users, 'Users retrieved successfully');
}
public function store(Request $request)
{
$user = User::create($request->validated());
return ApiResponse::created($user, 'User created successfully');
}
}
class UserController extends Controller
{
public function index()
{
$users = User::paginate(10);
return response()->apiPaginated($users, 'Users retrieved successfully');
}
public function store(Request $request)
{
$user = User::create($request->validated());
return response()->apiCreated($user, 'User created successfully');
}
}
class UserController extends Controller
{
public function index()
{
$users = User::paginate(10);
return api_paginated($users, 'Users retrieved successfully');
}
public function store(Request $request)
{
$user = User::create($request->validated());
return api_created($user, 'User created successfully');
}
}
use ApiResponse\Resources\ApiResource;
use Illuminate\Http\Request;
class UserResource extends ApiResource
{
protected function transformData(Request $request): array
{
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
'created_at' => $this->created_at?->toISOString(),
];
}
protected function getMessage(): string
{
return 'User retrieved successfully';
}
}
class UserController extends Controller
{
public function show($id)
{
$user = User::findOrFail($id);
return new UserResource($user);
}
public function index()
{
$users = User::paginate(10);
return UserResource::collection($users);
}
}
// In your routes/api.php
Route::middleware(['api.response'])->group(function () {
Route::get('/users', [UserController::class, 'index']);
Route::post('/users', [UserController::class, 'store']);
});
// Or register globally in App\Http\Kernel.php
protected $middlewareGroups = [
'api' => [
\ApiResponse\Http\Middleware\ApiResponseMiddleware::class,
// ... other middleware
],
];
use ApiResponse\Services\ApiVersioningService;
class UserController extends Controller
{
public function index(ApiVersioningService $versioning)
{
$version = $versioning->getVersion(request());
if ($version === 'v2') {
// Return v2 format
return $this->paginatedResponseV2($users);
}
// Return v1 format
return $this->paginatedResponse($users);
}
}
use ApiResponse\Services\ResponseCompressionService;
class UserController extends Controller
{
public function index(ResponseCompressionService $compression)
{
$response = $this->paginatedResponse($users);
return $compression->compress(request(), $response);
}
}
use ApiResponse\Services\PerformanceMonitoringService;
class UserController extends Controller
{
public function index(PerformanceMonitoringService $monitoring)
{
$monitoring->startMonitoring(request());
$users = User::paginate(10);
$response = $this->paginatedResponse($users);
$monitoring->endMonitoring(request(), $response);
return $response;
}
}