Download the PHP package shirokovnv/laravel-query-api-backend without Composer
On this page you can find all versions of the php package shirokovnv/laravel-query-api-backend. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download shirokovnv/laravel-query-api-backend
More information about shirokovnv/laravel-query-api-backend
Files in shirokovnv/laravel-query-api-backend
Package laravel-query-api-backend
Short Description Unified API for running queries with eloquent models from any http client
License MIT
Homepage https://github.com/shirokovnv/laravel-query-api-backend
Informations about the package laravel-query-api-backend
LaravelQueryApiBackend
Unified API for running queries with eloquent models from any http client.
For query data format and usage in frontend see this package
Installation
Via Composer
Usage
Ensure all migrations done
Publish configuration:
Once installed you can do stuff like this in Controller:
$request is Illuminate\Http\Request or Illuminate\Foundation\Http\FormRequest
For available options see config section
Request must contain following keys:
query_data
query_mode
client_request_id
This can be provided in middleware (check example controller and ClientRequestId middleware)
Example controller:
Shirokovnv\LaravelQueryApiBackend\Http\Controllers\QueryApiController
Available query modes:
transaction
runs a couple of queries as a whole. If one of the queries fails, transaction will be rolled back.
multiple
runs a couple of queries individually.
all occurred errors will be added to the error pool with the rest of the result.
Available types of queries:
create
delete
fetch (aka select)
find
update
custom
Authorization
Package provides a way to authorize actions with your queries.
By default no authorization needed.
- To switch it on, at first, the model you want to authorize requests for, should implement Shirokovnv\LaravelQueryApiBackend\Support\ShouldAuthorize interface.
The interface is simple and contains one static method:
This function must return array that contains names of abilities, for ex.
Query type names and authorization ability names correlate as:
create -> create
custom -> custom
delete -> delete
fetch -> viewAny
find -> view
update -> update
- The second options are default laravel policies for your models.
Each policy contains specific methods, where you feel free to implement any logic for query authorization.
Validation
Each query can be validated the following way:
- Use Laravel FormRequest generator for model.
For ex. for App\Models\User create request with name Models\UserRequest
- Model should implement Shirokovnv\LaravelQueryApiBackend\Support\ShouldValidate interface
with one static method:
For ex:
Available list of actions is equal to list of query type names.
- FormRequest action name to method correlation:
custom, create -> POST
update -> PATCH
delete -> DELETE
find, fetch -> GET
Change log
Please see the changelog for more information on what has changed recently.
Testing
Contributing
Please see contributing.md for details and a todolist.
Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Credits
- Nickolai Shirokov
- All Contributors
License
MIT. Please see the license file for more information.