1. Go to this page and download the library: Download negartarh/apiwrapper 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/ */
negartarh / apiwrapper example snippets
use Negartarh\APIWrapper\Facades\APIResponse;
...
public function index():\Illuminate\Http\Response
{
$users = User::latest()->take(10)->get();
# Alias of
# return APIResponse::success($users);
return APIResponse::ok($users);
}
use Negartarh\APIWrapper\Facades\APIResponse;
...
public function index():\Illuminate\Http\Response
{
$users = User::latest()->take(10)->get();
return apiwrapper()->ok($users);
# or
return api_response()->ok($users);
}
use Illuminate\Support\Facades\Request;
use Negartarh\APIWrapper\Facades\APIResponse;
...
public function create(Request $request):\Illuminate\Http\Response
{
$user = User::where('email', '=', $request->get('email'))
->firstOrCreate();
return APIResponse::created($user);
}
use Illuminate\Support\Facades\Request;
use Negartarh\APIWrapper\Facades\APIResponse;
...
public function index(Request $request):\Illuminate\Http\Response
{
$posts = Post::all();
if(!is_countable($posts) or count($posts) == 0):
return APIResponse::noContent();
else:
...
}
use Illuminate\Http\Exceptions\HttpResponseException;
use Negartarh\APIWrapper\Facades\APIResponse;
class ExampleCaptchaRequest extends FormRequest // example rule class
{
...
/**
* Handle a failed validation attempt.
*
* @param Validator $validator
* @return HttpResponseException
*/
public function failedValidation(Validator $validator): HttpResponseException
{
# based on RFC: 4918
return APIResponse::unprocessableEntity($validator->errors());
}
}
use Illuminate\Http\Exceptions\HttpResponseException;
use Negartarh\APIWrapper\Facades\APIResponse;
class ExampleCaptchaRequest extends FormRequest // example rule class
{
...
/**
* Handle a failed validation attempt.
*
* @param Validator $validator
* @return HttpResponseException
*/
public function failedValidation(Validator $validator): HttpResponseException
{
return APIResponse::status(413, $validator->errors());
}
}
use Illuminate\Http\Exceptions\HttpResponseException;
use Negartarh\APIWrapper\Facades\APIResponse;
class ExampleAuthenticationRequest extends FormRequest // example rule class
{
...
/**
* Handle a failed validation attempt.
*
* @param Validator $validator
* @return HttpResponseException
*/
public function failedValidation(Validator $validator): HttpResponseException
{
# Alias of
# return APIResponse::status(403, $validator->errors(), 'Where are you looking here?');
retun APIResponse::forbidden($validator->errors(), 'What are you looking for here?');
}
}
# path/to/project/configuration/dir/apiwrapper.php
return [
...
'custom_keys'=>[
'app'=> 'My Wonderful APP',
...
'time'=> fn(mixed $content, int $status, string $message) => \Illuminate\Support\Carbon::now(),
or
'time' => 'Namespace\Of\Custom\Class::static_method', //recommended
or
'time' => 'any_callable_function',
# API Login Controller
use Negartarh\APIWrapper\Facades\APIResponse;
...
public function login(LoginRequest $request):\Illuminate\Http\Response
{
...
return APIResponse::ok([
...
]);
}
# API LoginRequest Form Request
use Negartarh\APIWrapper\Facades\APIResponse;
...
public function failedValidation(Validator $validator): HttpResponseException
{
return APIResponse::unprocessableEntity($validator->errors());
}
# app/Exceptions/Handler.php
class Handler extends ExceptionHandler
{
...
public function register()
{
$this->reportable( function ( Throwable $e ) {
//
} );
$this->renderable(function (NotFoundHttpException $e, Request $request) {
if ($request->is('api/*')):
return APIResponse::status(404);
endif;
});
}