Integrace Graph API do presenteru

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
klasyc
Člen | 14
+
0
-

Zdravím,

dělám v Nette aplikaci, která bude vykreslovat grafy z dat uložených v databázi a chtěl bych na to použít Graph API od Google. Parametry grafu ze zadávají odesláním POST requestu na uvedenou adresu (viz http://code.google.com/…equests.html) a zpátky se vrátí obrázek.

Chtěl bych to udělat tak, aby měl presenter speciální akci, která by nevracela šablonu, ale rovnou vygenerovaný graf (který by si načetla nějaká šablona). Je toto dobré řešení a jak toho dosáhnout?

Díky za rady.

Mikulas Dite
Člen | 756
+
0
-

Lepší by bylo udělat to jako znovupoužitelnou komponentu. Viz třeba https://doc.nette.org/…n/components.

klasyc
Člen | 14
+
0
-

Tak jako komponenta by to šlo udělat taky, to je pravda. Já mám zatím ale problém spíš s tím, jak odeslat formulář a jak vrátit z presenteru něco jiného než vyplněnou šablonu. Když bych udělal nějaký malý skript někde „bokem“, tak se zase připravím o všechny ty příjemnosti, které mi Nette nabízí a které budu potřebovat na generování dat do grafu…

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Nejsem si jistý, jestli je to nette-best-practice, ale mělo by jít v presenteru použít následující:

use Nette\Application\RenderResponse;

$response = new RenderResponse($whatewer);
$this->sendResponse($response);

Kde $whatewer může být cokoliv, co se vypíše. Nicméně je to skutečně použití, kdy adresa dané akce daného presenteru vrátí pouze tohle $whatewer, žádná šablona tento výstup už použít nemůže – šablonu to nahrazuje.


Existují i další druhy Response, třeba JsonResponse atd.

kravčo
Člen | 721
+
0
-

klasyc napsal(a):

Parametry grafu ze zadávají odesláním POST requestu na uvedenou adresu (viz http://code.google.com/…equests.html) a zpátky se vrátí obrázek.

Znovupoužiteľná komponenta je asi najlepší nápad.

Funguje aj GET request, ktorý mi príde pre potreby vypisovania dát z databázy vhodnejší…

Filip Procházka
Moderator | 4668
+
0
-

Na zasílání POST do google graph API můžeš zkusit použít můj cURL wrapper

Mikulas Dite
Člen | 756
+
0
-

Šel bych spíš cestou oříznutí dat na rozumnou míru už na serveru (Google tam má stejně limit něco jako 300 000 pixelů čtverečních, takže detaily nezobrazíš). Potom se všechny údaje vejdou i do get requestu a bude se to celé psát docela snadno.

mcmatak
Člen | 490
+
0
-

proč nestačí get? v čem je výhodnější post požadavek na ty grafy?

Mikulas Dite
Člen | 756
+
0
-

Při post ten image nebude mít ty data v src="", server bude muset ukládat do cache response toho google serveru místo toho, aby to natáhnul až user a hlavně get request má omezení na délku, což u hodně dat může být problém.