1. Go to this page and download the library: Download bkstar123/laravel-api-buddy 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/ */
/**
* Send error response in JSON format
*
* @param mixed $errors
* @param int $status
* @return \Illuminate\Http\JsonResponse
*/
public function errorResponse($errors, int $status = 500) : JsonResponse;
/**
* Send success response in JSON format
*
* @param mixed $data
* @param int $status
* @return \Illuminate\Http\JsonResponse
*/
public function successResponse($data, int $status = 200) : JsonResponse;
/**
* Show a collection of resources
*
* @param \Illuminate\Database\Eloquent\Builder $builder
* @param string $apiResource
* @param string $transformerClass
* @return \Illuminate\Http\JsonResponse
*/
public function showCollection(Builder $builder, string $apiResource = '', string $transformerClass = '') : JsonResponse;
/**
* Show a resource instance
*
* @param \Illuminate\Database\Eloquent\Model $instance
* @param string $apiResource
* @param string $transformerClass
* @param int $code
* @return \Illuminate\Http\JsonResponse
*/
public function showInstance(Model $instance, string $apiResource = '', string $transformerClass = '', int $code = 200) : JsonResponse;
$eloquentBuilder = User::query();
$eloquentBuilder = $post->tags()->getQuery();
// You can further add more query scope or modifying the builder before passing it to showCollection()
namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
use Bkstar123\ApiBuddy\Http\Controllers\ApiController as Controller;
class UserController extends Controller
{
public function index()
{
return $this->apiResponser->showCollection(User::query());
}
public function showUser(User $user)
{
return $this->apiResponser->showInstance($user);
}
public function create(Request $request)
{
$request->validate([
'name' => '
namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
use App\Http\Resources\UsersResource;
use App\Transformers\UserTransformer;
use Bkstar123\ApiBuddy\Http\Controllers\ApiController as Controller;
class UserController extends Controller
{
public function __construct()
{
parent::__construct();
$this->middleware('apibuddy.transform:'. UserTransformer::class)->only('create');
}
public function index()
{
return $this->apiResponser->showCollection(User::query(), UserResource::class, UserTransformer::class);
}
public function showUser(User $user)
{
if (empty($user)) {
return $this->apiResponser->errorResponse('There is no resource of the given identificator', 404);
}
return $this->apiResponser->showInstance($user, UserResource::class, UserTransformer::class);
}
public function create(Request $request)
{
$request->validate([
'name' => '
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
...
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
...,
'api' => [
'throttle:60,1',
'bindings',
'apibuddy.cors', // add this middleware to enable CORS
],
];
...
}
/config/bkstar123_apibuddy.php
/config/cors.php
/config/cors.php
/config/bkstar123_apibuddy.php
replace_exceptionhandler
/config/bkstar123_apibuddy.php
/config/bkstar123_apibuddy.php
app/Http/Controllers/UserController.php
app/Http/Kernel.php
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.