PHP code example of greelogix / api-response-formatter
1. Go to this page and download the library: Download greelogix/api-response-formatter 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/ */
greelogix / api-response-formatter example snippets
use GreeLogix\ApiResponseFormatter\ApiResponse;
// Success response
return ApiResponse::success(User::all());
// With custom message
return ApiResponse::success($user, 'User retrieved successfully.');
// With custom status
return ApiResponse::success($user, status: 202);
// With meta data
return ApiResponse::success($user, meta: ['version' => '1.0']);
// Error response
return ApiResponse::error('User not found', status: 404);
// Validation error
return ApiResponse::validationError($validator->errors()->toArray());
// Not found
return ApiResponse::notFound('Resource not found');
// Unauthorized
return ApiResponse::unauthorized('Unauthorized access');
// Created response
return ApiResponse::created($newUser, 'User created successfully.');
use GreeLogix\ApiResponseFormatter\ApiResponseTrait;
use Illuminate\Http\Request;
class UserController extends Controller
{
use ApiResponseTrait;
public function index()
{
$users = User::paginate(15);
return $this->successResponse($users);
}
public function show($id)
{
$user = User::find($id);
if (!$user) {
return $this->errorResponse('User not found', status: 404);
}
return $this->successResponse($user);
}
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => '
use GreeLogix\ApiResponseFormatter\Exceptions\ApiException;
// In your controller or service
if (!$user) {
throw new ApiException('User not found', statusCode: 404);
}
// With validation errors
throw new ApiException(
'Validation failed',
statusCode: 422,
errors: $validator->errors()->toArray()
);
use App\Http\Resources\UserResource;
use GreeLogix\ApiResponseFormatter\ApiResponse;
// Single resource
$user = User::find(1);
return ApiResponse::success(new UserResource($user));
// Resource collection
$users = User::all();
return ApiResponse::success(UserResource::collection($users));
use GreeLogix\ApiResponseFormatter\ApiResponse;
// Paginated response
$users = User::paginate(15);
return ApiResponse::success($users);
'format' => 'jsend',
'format' => 'json_api',
// Uses default status code from config (200)
return ApiResponse::success($data);
// Override status code
return ApiResponse::success($data, status: 202);
// Uses default created status code (201)
return ApiResponse::created($data);
// Override created status code
return ApiResponse::created($data, status: 201);
use GreeLogix\ApiResponseFormatter\Formatters\FormatterInterface;
class MyCustomFormatter implements FormatterInterface
{
public function formatSuccess($data, ?string $message = null, ?array $meta = null, ?array $pagination = null): array
{
// Your custom format logic
}
public function formatError(?string $message = null, ?array $errors = null): array
{
// Your custom error format logic
}
}
use GreeLogix\ApiResponseFormatter\ApiResponse;
// In your tests
$response = ApiResponse::success(['test' => 'data']);
$response->assertStatus(200)
->assertJson([
'success' => true,
'data' => ['test' => 'data']
]);