1. Go to this page and download the library: Download kelemen/api-nette 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/ */
$api = new Api(...);
$api->add('purge', 'purge/urls', 'Handlers\PurgeHandler')
$api = new Api(...);
$api->get('users', 'Handler'); // exact match for (with our route) /api/users
$api->get('users/<id>', 'Handler'); // parse parameter id from routes like /api/users/10, /api/users/sdk-2323 etc.
$api->get('users/<id>/message/<messageId>', 'Handler'); // parse parameters id and messageId from matched requests
// Optional parameters are not supported. If optional parameter is needed we have to define multiple routes.
$api->get('users/<id>/message', 'Handler');
$api->get('users/<id>/message/<messageId>', 'Handler');
// In route definition we can use any regular expression.
$api->options('.*', 'Handler'); // process OPTIONS call for any incoming URL
$api = new Api(...);
$api->get('users', 'Full\Namespace\For\Handler'); // By type
$api->get('users/<id>', '#registeredHandlerName'); // By name
$api = new Api(...);
$api->get('users', 'Full\Namespace\For\Handler', ['middleware' => [
'Middleware\Auth\Bearer', // By type
'#bearerAuthorization' // By name
]]);
use Nette\Http\Request;
use Nette\Http\Response;
use Kelemen\ApiNette\Handler\BaseHandler;
use Kelemen\ApiNette\Response\JsonApiResponse;
use Kelemen\ApiNette\Validator\Validation;
class UserGetHandler extends BaseHandler
{
// Here we can define validation rules for input parameters (see section Validations below).
// This function is optional.
public function validate()
{
return [
new Validation('path', 'id', 'alues['page'])) {
...
}
return new JsonApiResponse(200, ['data' => [
'id' => 1,
'name' => 'Samuel'
]]);
}
}
$validator = new Kelemen\ApiNette\Validator\Validator();
$validator->setValidator('enum', function ($value, $ruleParams = null) {
// $value - contains parameter value
// $ruleParams - contains string from parsed rule after ":"
return in_array($value, explode(',', $ruleParams));
});
// Usage in validation funciton ...
public function validate()
{
return new Validation('get', 'name', '
use Kelemen\ApiNette\Middleware\Middleware;
use Nette\Http\Request;
use Nette\Http\Response;
class CustomMiddleware implements Middleware
{
public function __invoke(Request $request, Response $response, callable $next)
{
// This code is executed before handler (Optional)
// Example: provide authentification here. If user is authenticated call $next() if no return new response
if ($request->isSecured()) {
// Do something ...
}
// Call next middleware or handler if last middleware (Optional)
$resp = $next($request, $response);
// This code is executed after handler (Optional)
// Example: add CORS headers here
$response->setHeader('custom header', 'header value');
// Mandatory! Every middleware has to return response!
return $resp;
}
}
['middleware1', 'middleware2', 'middleware3']
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.