Я работаю над API отдыха с SLIM FRAMEWORK 3, и мне нужно проверить, возвращает ли вызов GET конкретные данные в Middleware. Если данные не возвращаются, мне нужно сначала сделать новый вызов с методом POST, чтобы записать данные в API, а затем продолжить с $ next ().
Я пробовал withRedirect (), но, похоже, работает только с GET. Есть какой-либо способ сделать это? Спасибо.
<?php
$app->add(function($req, $res, $next){
$uri = $req->getUri()->getPath();
//get query_string params
$params = $req->getUri()->getQuery();
parse_str($params, $args);
//check if is desired route...
if($req->isGet() && isset($args['name']) && isset($args['borndate']) && $uri == 'api/v1/example'){
global $app;
//try to get data from DB
$dados_mapa = (new App\Models\MyExampleModel())->get()
->where('name', '=', $args['name'])
->where('borndate', '=', $args['borndate'])
->first();
//check data
if(isset($dados_mapa->id))
{
//data exists, continue
return $next($req, $res);
}else{
//no data, I need to do a POST call here...
$new_post_uri = 'api/v1/example';
doPostHere($new_post_uri); ////how to make this POST?
//continue with the first call
return $next($req, $res);
}
}
});