Nové API existující aplikace

- PJK
 - Člen | 70
 
Zdravím, mám dotaz na zkušenější Nettisty. Mám běžící aplikaci postavenou na Nette a Doctrine 2. Představa frontendáře je taková, že postupně přejdeme na übertrendy tlustého klienta v prohlížeči. Potřebuji tedy na aplikaci napasovat další rozhraní, tj. JSON API. Komplet, nic jako snippety, regulérní API se vším všudy. Chvílí pak obě verze poběží vedle sebe a pak se původní verze vypne a z mého pohledu z aplikace zbude jen API server.
Mám následující otázky:
- Metody API se budou dost podobat současným akcím presenterů. Je realistické, že by stačila výměna view? Jak generujete JSON výstupy vy?
 - Máte zkušenosti s tímto psaním interního AJAX API existujících aplikací? Jaké?
 - Má cenu držet se Nette, nebo mám použít třeba jen routy, model a cache a dostavět si to sám?
 
Podělte se prosím o své zkušenosti a postřehy. Díky!

- norbe
 - Backer | 408
 
- Můžeš využít 
JsonResponse: 
$this->sendResponse(new JsonResponse($data));
- Teprv se na něco takového chystám až bude čas, takže moc neporadím. Pár postřehů můžeš najít v tématu o ExtJs zde na fóru.
 

- Jan Tvrdík
 - Nette guru | 2595
 
Napiš si vlastní implementaci IPresenter. Je zbytečné
používat tak velkou třídu jako je Presenter, když nehodláš
použít jedinou komponentu.

- Filip Procházka
 - Moderator | 4668
 
Napadlo mě, že by mohlo být zajímavé, udělat kompilátor
.latte → .js a posílat šablony klientovi, někam
si je třeba kešovat a pak posílat JSONem data, co předáváš šabloně
public function sendTemplate()
{
	// přibalím šablony
	$this->payload->templates = $this->template->packToJSON();
	// přibalím předané data
	$this->payload->templateParams = $this->template->getParams();
	// odešlu
	$this->sendPayload();
}
Kdyby se odesílaly jenom třeba nějaké odkazy a měl by jsi router, který
by poskytoval pouze šablony, dalo by se to parádně kešovat u klienta.
Samozřejmě by nesmělo být v šablonách žádné {? }
apod :)

- PJK
 - Člen | 70
 
Kdyby se odesílaly jenom třeba nějaké odkazy a měl by jsi router, který by poskytoval pouze šablony, dalo by se to parádně kešovat u klienta. Samozřejmě by nesmělo být v šablonách žádné
{? }apod :)
To jsme se asi nepochopili, já budu odesílat jenom data v JSONu :). Všechno ostatní se bude distribuovat z CDN. Je to prakticky přesun view ke klientovi (+ změna view enginu).

- Filip Procházka
 - Moderator | 4668
 
Noo tak nějak jsem to myslel s tím routerem, jenom jsem se špatně vyjádřil :) ten router na šablony měl být to tvoje CDN :)