Download the PHP package foothing/laravel-repository-controller without Composer
On this page you can find all versions of the php package foothing/laravel-repository-controller. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download foothing/laravel-repository-controller
More information about foothing/laravel-repository-controller
Files in foothing/laravel-repository-controller
Package laravel-repository-controller
Short Description Resources controller with Eloquent Laravel Repository implementation.
License MIT
Informations about the package laravel-repository-controller
Laravel Repository Controller
Easily open an HTTP api over your Laravel database.
Setup
Install with composer:
composer require foothing/laravel-repository-controller
This package will define several routes in a REST-like format that will perform operations on your database.
Add the service provider in config/app.php
:
In order to enable the routes, you'll need to declare them in
your routes.php
:
Be careful and place the
RouteInstaller::install()
method at the very end of yourroutes.php
in order to avoid conflicts.IMPORTANT: you will need to change the default Controllers namespace in
RouteServiceProvider
like so:protected $namespace = '';
Finally, configure your resources in the config file.
This will add the resources.php
file in your config
folder.
This will enable the routes on the specified resources.
How to use
The RouteInstaller
will declare the package routes. You can specify
a prefix as an optional install()
argument. The process will enable
the following routes, which we'll describe in better details later.
VERB | Url | Notes |
---|---|---|
GET | [optionalPrefix]/resources/{resource}/{id?}/{args?} |
Read resources |
POST | [optionalPrefix]/resources/{resource} |
Create resources |
PUT | [optionalPrefix]/resources/{resource}/{id} |
Update resources |
DELETE | [optionalPrefix]/resources/{resource}/{id} |
Delete resources |
PUT | resources/{resource}/{id?}/link/{relation}/{related}/{relatedId} |
Attach many-to-many |
DELETE | resources/{resource}/{id?}/link/{relation}/{related}/{relatedId} |
Detach many-to-many |
POST | resources/bulk/{resource} |
Bulk create resources |
PUT | resources/bulk/{resource} |
Bulk update resources |
Each api endpoint will return data in JSON
format.
Read resources
Verb | Url | Payload |
---|---|---|
GET | [optionalPrefix]/resources/{resource}/{id?}/{args?} |
none |
Examples
GET api/v1/resources/user
: will return all usersGET api/v1/resources/user/15
: will return user with id = 15GET api/v1/resources/user/15/roles
will return user 15 roles
Pagination
This endpoint will handle 2 querystring args for pagination:
- page (pagination page)
- ipp (pagination items-per-page)
The result will be a Laravel paginated result like:
Related resources
You can pass an optional with
query string argument that will be used
to fetch relations within the requested resource:
GET api/v1/resources/user/1?with=roles,posts
Auto eager loading relations
Since this package relies on Laravel Repository you can take advantage of that package eager loading features therefore enabling auto eager-load features on each resource.
Create resources
Create the requested resource.
Verb | Url | Payload |
---|---|---|
POST | [optionalPrefix]/resources/{resource} |
{resourceData} |
Example
POST api/v1/resources/user
POST payload
HTTP Response
Update resources
Update the requested resource.
Verb | Url | Payload |
---|---|---|
PUT | [optionalPrefix]/resources/{resource}/{id} |
{resourceData} |
Example
PUT api/v1/resources/user/1
PUT payload
HTTP Response
Delete resources
Delete the requested resource.
Verb | Url | Payload |
---|---|---|
DELETE | [optionalPrefix]/resources/{resource}/{id} |
none |
Example
DELETE api/v1/resources/user/1
Link, bulk create and bulk update
More info coming soon.
LICENSE
MIT
All versions of laravel-repository-controller with dependencies
illuminate/routing Version ~5.0
foothing/laravel-repository Version >=0.8.0