1. Go to this page and download the library: Download redmarbakker/via-rest 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/ */
redmarbakker / via-rest example snippets
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use ViaRest\Models\DynamicModelInterface;
use ViaRest\Models\DynamicModelTrait;
class Order extends Model implements DynamicModelInterface
{
use DynamicModelTrait;
...
}
namespace App\Http\Controllers\Api;
use Illuminate\Http\JsonResponse;
use ViaRest\Http\Controllers\Api\AbstractRestController;
use ViaRest\Http\Controllers\Api\RestControllerInterface;
use ViaRest\Models\DynamicModelInterface;
use App\Models\Order;
class OrderController extends AbstractRestController implements RestControllerInterface
{
/**
* @return DynamicModelInterface
*/
public function getModel(): DynamicModelInterface
{
return new Order();
}
/**
* @param $input array
* @return JsonResponse
* */
public function doCreate(array $input): JsonResponse
{
...
return parent::doCreate($input);
}
...
}
use ViaRest\Http\Router\ViaRest;
ViaRest::handle('v1', [
/**
* All REST API routes
*
* uri => provider
* */
'orders' => ViaRest::model(Order::class),
]);
use ViaRest\Http\Router\ViaRest;
ViaRest::handle('v1', [
/**
* All REST API routes
*
* uri => provider
* */
'orders' => ViaRest::controller(OrderController::class),
]);
use ViaRest\Http\Router\ViaRest;
use App\Http\Controllers\Api\OrderController;
use App\Models\User;
use App\Models\Order;
use App\Models\Product;
ViaRest::handle('v1', [
/**
* All REST API routes
*
* uri => provider
* */
// GET: /api/v1/users/1/orders
'users' => ViaRest::model(User::class, [
'orders' => Order::class
]),
// GET: /api/v1/orders/1/products
'orders' => ViaRest::controller(OrderController::class, [
'products' => Product::class
]),
]);
use ViaRest\Http\Router\ViaRest;
use App\Http\Controllers\Api\OrderController;
use Illuminate\Http\Request;
ViaRest::handle('v1', [
/**
* All REST API routes
*
* uri => provider
* */
// GET: /api/v1/orders/unhandled
'orders' => ViaRest::controller(OrderController::class, [], [
'unhandled' => [Request::METHOD_GET, 'unhandled']
]),
]);
namespace App\Http\Controllers\Api;
use ViaRest\Http\Controllers\Api\AbstractRestController;
use ViaRest\Http\Controllers\Api\RestControllerInterface;
use ViaRest\Models\DynamicModelInterface;
use App\Http\Requests\Api\UnhandledRequest;
use App\Model\Order;
class OrderController extends AbstractRestController implements RestControllerInterface
{
/**
* @return DynamicModelInterface
*/
public function getModel(): DynamicModelInterface
{
return new Order();
}
public function unhandled(UnhandledRequest $request)
{
return ok([
'data' => $this->getModel()->where('is_handled', false)->get()
]);
}
}
namespace App\Http\Requests\Api\Orders;
use ViaRest\Http\Requests\Api\CreateRequest as AbstractCreateRequest;
use ViaRest\Http\Requests\Api\CrudRequestInterface;
class CreateRequest extends AbstractCreateRequest implements CrudRequestInterface
{
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'user_id' => '
namespace App\Http\Requests\Api\Orders;
use ViaRest\Http\Requests\Api\CrudRequestInterface;
use ViaRest\Http\Requests\Api\AbstractRequest;
class UnhandledRequest extends AbstractRequest implements CrudRequestInterface
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
];
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.