Integrace Graph API do presenteru
- klasyc
- Člen | 14
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
Lepší by bylo udělat to jako znovupoužitelnou komponentu. Viz třeba https://doc.nette.org/…n/components.
- klasyc
- Člen | 14
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
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
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
Na zasílání POST do google graph API můžeš zkusit použít můj cURL wrapper
- Mikulas Dite
- Člen | 756
Š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.
- Mikulas Dite
- Člen | 756
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.