To install apify use composer
composer require consoletvs/apify
Add the following service provider to the array in: config/app.php
ConsoleTVs\Apify\ApifyServiceProvider::class,
php artisan vendor:publish
To configure the package go to: config/apify.php
The default file have a valid example and it's documented, check it out, should look like this:
<?php
return [
/*
|--------------------------------------------------------------------------
| Prefix used to access the API
|--------------------------------------------------------------------------
*/
'prefix' => 'apify',
/*
|--------------------------------------------------------------------------
| Enables or disabled the whole API endpoints
|--------------------------------------------------------------------------
*/
'enabled' => true,
/*
|--------------------------------------------------------------------------
| The tables enabled for the api and it's columns
|--------------------------------------------------------------------------
*/
'tables' => [
// Specify all the tables below
'users' => [
// The columns from the table that will be displayed in the JSON
'id', 'name', 'email', 'created_at', 'updated_at'
],
],
];
Visit the endpoint like this:
Website URL + /api/ + Prefix + /{table}/{accessor?}/{data?}
table: is the table you want to look at, must be an index of the table array in the configuration.
accessor: is optional, and it's the colum to filter data.
data: is the data you're filtering, you can add multiple data separated with a ,
Note: Remember that all calls to the API goes first to the api
middleware, if you need to modify the api throttle go to: App\Http\Kernel.php
and modify the api throttle.
'api' => [
'throttle:60,1',
'bindings',
],
The 60
determines the max calls / minute.
The 1
determines the minutes to wait if the max calls are exceded.
Some examples:
http://localhost/web/Laralum3/public/api/apify/users (example URL)
{"users":[{"id":1,"name":"\u00c8rik Campobadal","email":"ConsoleTVs@gmail.com","created_at":"2016-09-22 16:13:28","updated_at":"2016-10-02 11:18:25"},{"id":2,"name":"Second User","email":"ConsoleTV2s@gmail.com","created_at":"2016-09-21 16:13:28","updated_at":"2016-09-22 16:20:00"},{"id":3,"name":"Third User","email":"ConsoleTV3s@gmail.com","created_at":"2016-08-22 16:13:28","updated_at":"2016-09-22 16:20:00"}]}
http://localhost/web/Laralum3/public/api/apify/users/email/ConsoleTVs@gmail.com,ConsoleTV3s@gmail.com (example URL)
{"users":[{"id":1,"name":"\u00c8rik Campobadal","email":"ConsoleTVs@gmail.com","created_at":"2016-09-22 16:13:28","updated_at":"2016-10-02 11:18:25"},{"id":3,"name":"Third User","email":"ConsoleTV3s@gmail.com","created_at":"2016-08-22 16:13:28","updated_at":"2016-09-22 16:20:00"}]}