PHP code example of kennedy-osaze / laravel-api-response
1. Go to this page and download the library: Download kennedy-osaze/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/ */
kennedy-osaze / laravel-api-response example snippets
namespace App\Http\Controllers;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
use KennedyOsaze\LaravelApiResponse\Concerns\RendersApiResponse;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests, RendersApiResponse;
}
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use KennedyOsaze\LaravelApiResponse\Concerns\RendersApiResponse;
class RandomController extends Controller
{
use RendersApiResponse;
}
namespace App\Exceptions;
use App\Traits\HandleApiException;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use KennedyOsaze\LaravelApiResponse\Concerns\ConvertsExceptionToApiResponse;
use Throwable;
class Handler extends ExceptionHandler
{
use ConvertsExceptionToApiResponse;
public function render($request, Throwable $e)
{
return $this->renderApiResponse($e, $request);
}
}
namespace App\Exceptions;
use App\Traits\HandleApiException;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use KennedyOsaze\LaravelApiResponse\Concerns\ConvertsExceptionToApiResponse;
use Throwable;
class Handler extends ExceptionHandler
{
use ConvertsExceptionToApiResponse;
public function register()
{
$this->renderable(function (Throwable $e, $request) {
return $this->renderApiResponse($e, $request);
});
}
}
use KennedyOsaze\LaravelApiResponse\ApiResponse;
$response = new ApiResponse($status = 200, $message = 'Hello world', $data = ['age' => 20], $header = []);
return $response->make();
// Result
{
"success": true,
"message": "Hello world",
"data": {
'age' => 20
}
}
// OR
return ApiResponse::create(400, 'Error occurred');
// Result
{
"success": false,
"message": "Error occurred"
}
// We could also have
$validator = Validator::make([], ['name' => ' "world"
}
}
// App\Providers\AppServiceProvider
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Http\Request;
use KennedyOsaze\LaravelApiResponse\ApiResponse;
public function boot()
{
ApiResponse::registerValidationErrorFormatter(function (Validator $validator, Request $request) {
return [
'error_messages' => $validator->errors()->all(),
];
});
}
use \KennedyOsaze\LaravelApiResponse\ApiResponse;
ApiResponse::create(200, 'A message', $data)
use App\Models\Book;
use App\Http\Resources\BookResource;
use App\Http\Resources\BookCollection;
use KennedyOsaze\LaravelApiResponse\ApiResponse;
$resource = new BookResource(Book::find(1));
return ApiResponse::fromJsonResponse($resource->response(), 'A book');
// Also
$collection = BookResource::collection(Book::all());
return ApiResponse:::fromJsonResponse($collection->response(), 'List of books');
// Also
$collection = new BookCollection(Book::paginate());
return ApiResponse::fromJsonResponse($collection->response, 'Paginated list of books')
return [
'Account Created' => 'User account created successfully',
'invoice_paid' => 'Invoice with number :invoice_number has been paid.',
];
use KennedyOsaze\LaravelApiResponse\ApiResponse;
return ApiResponse::create(200, 'Account Created');
// Result
{
"success": true,
"message": "User account created successfully"
}
// Also:
return ApiResponse::create(200, 'invoice_paid:invoice_number=INV_12345');
// OR
return ApiResponse::create(200, 'invoice_paid', [
'_attributes' => ['invoice_number' => 'INV_12345']
]);
// Result
{
"success": true,
"message": "Invoice with number INV_12345 has been paid."
}
// Also:
return ApiResponse::create(200, 'invoice_paid', [
'_attributes' => ['invoice_number' => 'INV_12345'],
'name' => 'Invoice for Mr Bean',
'amount' => 1000,
'number' => 'INV_12345'
]);
// Result
{
"success": true,
"message": "Invoice with number INV_12345 has been paid.",
"data": {
"name": "Invoice for Mr Bean",
"amount": 1000,
"number": "INV_12345"
}
}
use KennedyOsaze\LaravelApiResponse\ApiResponse;
return ApiResponse::create(400, 'Error message comes here.', [
'error_code' => 'request_failed' // The error code here is "request_failed"
]);
// Result
{
"success": false,
"message": "Error message comes here.",
"error_code": "request_failed"
}
return [
'error_code' => [
'example_code' => 'Just a failed error message',
'error_code_name' => 'Example error message with status :status',
],
];
use KennedyOsaze\LaravelApiResponse\ApiResponse;
return ApiResponse::create(400, 'error_code.example_code');
// Result
{
"success": false,
"message": "Just a failed error message",
"error_code": "example_code"
}
// Also
return ApiResponse::create(400, 'error_code.error_code_name', [
'_attributes' => ['status' => 'FAILED']
]);
// OR
return ApiResponse::create(400, 'error_code.error_code_name:status=FAILED');
// Result
{
"success": false,
"message": "Example error message with status FAILED",
"error_code": "error_code_name"
}