1. Go to this page and download the library: Download bonuscred/api-manager 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/ */
$app = new ApiManager\Server\App;
$cont = $app->use('/', function(){});
$cont->onStart(function($req, $res){
//Executa callback antes da execução do container
});
$cont->onSuccess(function($req, $res){
//Executa callback se o container resolveu com sucesso
});
$cont->onError(function($req, $res, $err){
//Executa callback se o container encontrou algum erro
//$err é uma extensão de Throwable
});
$cont->onResolved(function($req, $res){
//Executa callback ao finalizar container
});
$app = new ApiManager\Server\App;
$app->use('/api', function(){})
->alias('/oldapi');
$app = new ApiManager\Server\App;
$app->redirect('/path/to/be/redirected', 'https://google.com.br', 302);
// Recebe como parâmetro um boleano(true como valor padrão)
// para informar se o router deve resolver apenas a primeira rota encontrada
// ou todas as rotas compatíveis com o método e url
$router = new ApiManager\Context\Router\Router(true);
$router->get('/myroute', function($req, $res, $args){
$response->status(200)
->json(['success' => true]);
});
$router->post('/my-post-route', [MyController::class, 'index']);
//Só execetada se router permitir execução de todas as correspondências
$router->get('/myroute', [MyController::class, 'index']);
$app = new ApiManager\Server\App;
$app->use('/', $router);
$app->run();
$router = new ApiManager\Context\Router\Router(true);
$router->group('/mygroup', function($group){
//Executa um callback para chamadas com método GET do grupo
$group->map('GET', '/', function($req, $res, $args){
$req->setBodyParam('method_get_on_group', true);
});
$group->get('/myroutegroup', ['MyController', 'index']);
$group->post('/myroutegroup', ['MyController', 'index']);
//Adiciona rota com Middlaware dentro do grupo
$group->get('/myroutegroup/{id}', ['MyController', 'index']);
// Passando middleware global para todas as rotas do grupo
$group->middleware(MyMiddleware::class);
});
use ApiManager\Extension\MiddlewareExtension;
use ApiManager\Http\Request;
use ApiManager\Http\Response;
class MyMiddleware implements MiddlewareExtension{
public function handle(Request $req, Response $res, \Closure $next){
$authorization = $req->getHeaderLine('Authorization');
if(!$authorization){
throw new Exception('Header Authorization não enviado.');
}
//Executa o próximo middleware da fila
$next($req, $res);
}
}
$router = new ApiManager\Context\Router\Router;
//Middleware global para todas as rotas
$router->middleware(MyMiddleware::class);
//Middleware em rota específica
$router->get('/myroute', ['MyController', 'index'], [MyMiddleware::class]);
$router->group('/mygroup', function($group){
//Middleware global para todas as rotas do grupo
$group->middleware(MyMiddleware::class);
//Middleware em rota específica do grupo
$group->get(
'/myroutegroup/{id}',
['MyController', 'index'],
[MyMiddleware::class]
);
});
use ApiManager\Http\Request;
use ApiManager\Http\Response;
function meuControlador(Request $req, Response $res, $args){
$args['route_path'] = $req->originalUrl();
$args['route_method'] = $req->httpMethod();
$res->status(200)->json($args);
}
use ApiManager\Extension\ControllerExtension;
use ApiManager\Http\Request;
use ApiManager\Http\Response;
class MyController implements ControllerExtension{
public static function index(Request $req, Response $res, $args = []){
$args['route_path'] = $req->originalUrl();
$args['route_method'] = $req->httpMethod();
$res->status(200)->json($args);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.