Vytvoření presenteru reagující na JSON v post dotazu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Vaek
- Člen | 2
Ahoj, potřeboval bych poradit, jak vytvořit jednoduchý presenter, který odchytí požadavek z postu ve formě JSON, získá z něj informace o tom jakou funkci z jaký třídy zavolat a výsledek funkce vrátit opět jako JSON. Jde o synchronizaci databáze s databází androidí aplikace. Aplikace pošle v JSON požadavek, s informacemi o třídě, funkci a parametrech, se kterými se má zavolat. Vytvořil jsem už něco málo, ale na 100% tam jsou chyby a proto mi to nefunguje. Potřeboval bych hlavně poradit kde se jak předávaj POSTový data a jak to nějak efektivně zabalit.
<?php
class JsonPresenter extends SecuredPresenter{
private $json;
public function actionDefault(){
$httpRequest = $this->context->getService('httpRequest');
if ($httpRequest->isMethod('POST')){
$this->json = json_decode($httpRequest->getPost('json'));
$this->setView('post');
$this->flashMessage('přijato POST.', 'post');
}
}
public function renderPost(){
$response = new stdClass();
$response->result = array();
$request = $this->json['request'];
for ($i = 0; $i < count($request['params']); $i++) {
$response->result[] = call_user_method($request['method'], $request['class'], $request['params']);
}
$response->id = $this->json['id'];
$response->got = $this->json;
$this->sendResponse(new JsonResponse($response));
}
}
?>
Za každou teoretickou i praktickou radu předem moc děkuju.