PHP code example of aliirfaan / laravel-simple-api

1. Go to this page and download the library: Download aliirfaan/laravel-simple-api 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/ */

    

aliirfaan / laravel-simple-api example snippets




namespace aliirfaan\LaravelSimpleApi\Http\Resources;

use Illuminate\Http\Resources\Json\ResourceCollection;

/**
 * ApiResponseCollection
 * 
 * A format for API responses
 * success: bool | whether response is success or failure
 * result: response main body
 * errors: response errors
 * links: HATEOS links
 * message: response diaply message
 * extra: any extra data
 */
class ApiResponseCollection extends ResourceCollection
{
    /**
     * Transform the resource collection into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        $items = $this->collection->all();
        return [
            'success' => $items['success'] ?? false,
            'result' => $items['result'] ?? null,
            'errors' => $items['errors'] ?? null,
            'links' => $items['links'] ?? null,
            'message' => $items['message'] ?? null,
            'extra' => $items['extra'] ?? null
        ];
    }
}

  aliirfaan\LaravelSimpleApi\SimpleApiServiceProvider::class,

 'aliirfaan\LaravelSimpleApi\SimpleApiServiceProvider',



namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\User;
use aliirfaan\LaravelSimpleApi\Services\ApiHelperService;
use Symfony\Component\HttpFoundation\Response;

class TestController extends Controller
{
    public function testApiHelper(Request $request, ApiHelperService $apiHelperService)
    {
        // get your api request fields
        $requestArray = $request->json()->all();

        // get your validatin rules
        $validationRules = User::$createRules;

        //validate api request
        $validationResult = $apiHelperService->validateRequestFields($requestArray, $validationRules);
        if (!is_null($validationResult)) {
            // output error response
            $namespace = 'user';
            $validationErrorResponse = $apiHelperService->apiValidationErrorResponse($namespace, $validationResult);
            return $validationErrorResponse->response()->setStatusCode(Response::HTTP_BAD_REQUEST);
        }

        // use your own message key
        if (!is_null($validationResult)) {
            // output error response
            $namespace = 'user';
            $errorTranslationKey = 'auth.failed';
            $errorTranslationParameters = ['code' => '15645'];

            $validationErrorResponse = $apiHelperService->apiValidationErrorResponse($namespace, $validationResult, $errorTranslationKey, $errorTranslationParameters);
            return $validationErrorResponse->response()->setStatusCode(Response::HTTP_BAD_REQUEST);
        }

        // a general response
        $data = $apiHelperService->responseArrayFormat;
        //dd($data);

        // do your processing
        $data['success'] = true;
        $result = new ApiResponseCollection($data);
        return $result->response()->setStatusCode(Response::HTTP_OK);
    }
}



namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\User;
use aliirfaan\LaravelSimpleApi\Services\ApiHelperService;
use Symfony\Component\HttpFoundation\Response;

class TestController extends Controller
{
    public function testApiHelper(Request $request, ApiHelperService $apiHelperService)
    {
        $namespace = $this->customerApiCommandModel->namespace;

        // database error
        $errorResource = $apiHelperService->apiDatabaseErrorResponse($namespace);
        return $errorResource->response()->setStatusCode($errorResource->collection['status_code']);

        // unknown/general error
        $errorResource = $apiHelperService->apiUnknownErrorResponse($namespace);
        return $errorResource->response()->setStatusCode($errorResource->collection['status_code']);

        // authentication error
        $errorResource = $apiHelperService->apiAuthenticationErrorResponse($namespace);
        return $errorResource->response()->setStatusCode($errorResource->collection['status_code']);

        // authorization error
        $errorResource = $apiHelperService->apiAuthorizationErrorResponse($namespace);
        return $errorResource->response()->setStatusCode($errorResource->collection['status_code']);

        // processing error with issue
        $issues = ['This is an issue', 'There is another issue'];
        $errorDetails[] = [
            'issues' => $issues
        ];
        $errorResource = $apiHelperService->apiProcessingErrorResponse($namespace, $errorDetails);
        return $errorResource->response()->setStatusCode($errorResource->collection['status_code']);
    }
}
bash
 $ php artisan vendor:publish --provider="aliirfaan\LaravelSimpleApi\SimpleApiServiceProvider"