PHP code example of nilanjan-k / api-response-formatter
1. Go to this page and download the library: Download nilanjan-k/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/ */
nilanjan-k / api-response-formatter example snippets
use NilanjanK\ApiResponseFormatter\Facades\ApiResponse;
class UserController extends Controller
{
public function index(): JsonResponse
{
return ApiResponse::success(User::all(), 'Users fetched successfully.');
}
public function store(StoreUserRequest $request): JsonResponse
{
$user = User::create($request->validated());
return ApiResponse::created($user, 'User created successfully.');
}
public function update(UpdateUserRequest $request, User $user): JsonResponse
{
$user->update($request->validated());
return ApiResponse::success($user, 'User updated.');
}
public function destroy(User $user): JsonResponse
{
$user->delete();
return ApiResponse::noContent();
}
}
use NilanjanK\ApiResponseFormatter\Traits\HasApiResponse;
class PostController extends Controller
{
use HasApiResponse;
public function index(): JsonResponse
{
return $this->success(Post::paginate(15), 'Posts listed.');
}
public function show(Post $post): JsonResponse
{
return $this->success($post, 'Post retrieved.');
}
public function store(StorePostRequest $request): JsonResponse
{
return $this->created(
Post::create($request->validated()),
'Post created.'
);
}
public function destroy(Post $post): JsonResponse
{
$post->delete();
return $this->noContent();
}
}
// Resolve the manager instance and chain any method
api_response()->success($data);
api_response()->notFound('Item not found.');
// Named shortcut helpers
api_success($data, 'Done.'); // → 200
api_error('Something broke.', 500); // → any error code
api_paginated($paginator, 'Listed.'); // → 200 with meta
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Http\Request;
use NilanjanK\ApiResponseFormatter\Traits\HandlesApiExceptions;
use Throwable;
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
api: __DIR__.'/../routes/api.php',
)
->withExceptions(function (Exceptions $exceptions) {
$exceptions->render(function (Throwable $e, Request $request) {
if ($request->expectsJson()) {
return (new class {
use HandlesApiExceptions;
})->renderApiException($e, $request);
}
});
})->create();
namespace App\Exceptions;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use NilanjanK\ApiResponseFormatter\Traits\HandlesApiExceptions;
use Throwable;
class Handler extends ExceptionHandler
{
use HandlesApiExceptions;
public function render($request, Throwable $e)
{
if ($request->expectsJson()) {
return $this->renderApiException($e, $request);
}
return parent::render($request, $e);
}
}
use NilanjanK\ApiResponseFormatter\Facades\ApiResponse;
// In AppServiceProvider::boot() or any other service provider:
ApiResponse::macro('teapot', function () {
return ApiResponse::error("I'm a teapot", 418);
});
ApiResponse::macro('accepted', function (mixed $data = null, string $message = 'Accepted.') {
return ApiResponse::success($data, $message, 202);
});
ApiResponse::macro('tooManyRequests', function (string $message = 'Too many requests.') {
return ApiResponse::error($message, 429);
});
return ApiResponse::teapot();
return ApiResponse::accepted($job, 'Your job is queued.');
return ApiResponse::tooManyRequests();
namespace App\Http\Resources;
use Illuminate\Http\Request;
use NilanjanK\ApiResponseFormatter\Http\Resources\BaseResource;
class UserResource extends BaseResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
'created_at' => $this->created_at->toIso8601String(),
];
}
}
// 200 with a custom message
return UserResource::make($user)->withMessage('User fetched.');
// 201 on creation
return UserResource::make($user)
->withMessage('User created.')
->withStatusCode(201);
return [
200 => 'Opération réussie.',
201 => 'Ressource créée avec succès.',
400 => 'Requête invalide.',
401 => 'Non authentifié. Veuillez vous connecter.',
403 => "Vous n'avez pas la permission d'effectuer cette action.",
404 => 'La ressource demandée est introuvable.',
422 => 'Les données fournies sont invalides.',
500 => 'Une erreur interne est survenue. Veuillez réessayer.',
];
'default_messages' => [
404 => 'Nothing here. Double-check the URL.',
503 => 'We are down for maintenance. Back shortly.',
],
lang/
└── vendor/
└── api-response/
├── en/
│ └── messages.php ← already exists after publish
├── fr/
│ └── messages.php ← create this for French
└── de/
└── messages.php ← create this for German
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.