Propojeni s mobilni aplikaci (Android)

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

Ahoj, mam napsanou alikaci v Nette, vychozi adresarova struktura. Chtel bych nejak co nejefektivneji pouzit kod v presenterech a prenaset data z/do mobilniho aplikace pro Android. Udelat v podstate mobilni verzi aplikace(ne mobilni verzi webu). Proste to, co posilam do templates bych rad posilal do aplikace.

Resil jste nekdo takovou situaci ? Jaka je nejlepsi technika ?

Diky moc

newPOPE
Člen | 648
+
0
-

Asi by som to riesil tak, ze si otvorim v aplikacii API a to Android APP vyuzije.

jerry90
Člen | 19
+
0
-

Diky za odpoved. Co to znamena otevrit si v aplikaci API ?

Filip Procházka
Moderator | 4668
+
0
-

Je to v podstatě jiný typ view.

Mohlo by to fungovat třeba tak, že by jsi posílal hlavičku, že chceš odpovědi v JSON, nebo nějaká hlavička/cookie/autentizace… to je detail.

Když máš tuhle informaci, tak můžeš v render fází naplnit $this->payload, místo $this->template v presenteru a data odeslat pomocí $this->sendPayload().

Výsledkem bude HTTP rozhraní, které nevrací HTML, ale JSON. S tímhle už pak můžeš snadno pracovat v aplikaci, posílat POST na adresy, kde jsou formuláře atd.

jerry90
Člen | 19
+
0
-

Diky to zni dobre.. Jeste bych potreboval vyresit prihlaseni. Jak to udelat tak, abych neposilal udaje v kazdem dotazu ? Jeste jsem cetl neco o doplnku JsonRpc2. Je to vhodne pro moji situaci ?

iguana007
Člen | 970
+
0
-

Já používám klasický JSON, tj. připravím si response do array a na konci akce zavolám:
$this->sendResponse(new JsonResponse($response));

Filip Procházka
Moderator | 4668
+
0
-

Stačí ti normálně posílat sušenku. Použiješ Http klienta, odešleš POST s údaji na přihlašovací formulář a sušenky co ti vrátí Nette, si uložíš a přikládáš ke každému dalšímu requestu.

jerry90
Člen | 19
+
0
-

Diky za odpovedi.. A mate nekdo zkusenost s nasazenim JsonRpc pro podobnou situaci ???

Filip Procházka
Moderator | 4668
+
0
-

Otázkou je, co je vhodnější.

Na JsonRpc máme sice skvělou knihovnu, ale bude potřeba implementovat klienta na druhé straně, který musí dodržovat protokol a to může být taky více práce.

Na Http REST rozhraní půjde napojit jakákoliv aplikace v jakémkoliv jazyce, která umí posílat Http requesty.

Patrik Votoček
Člen | 2221
+
0
-

Upravil jsem titulek tak aby me v RSSce tak „nesral“. Nejradeji bych takove posty asi rovnou mazal…

jerry90
Člen | 19
+
0
-

a pokud to budu posilat pres ten payload tak v jakym formatu dostanu ty data, kdyz poslu treba pole ?

Filip Procházka
Moderator | 4668
+
0
-

Payload se formátuje do JSONu, jak jsem psal na začátku.

jerry90
Člen | 19
+
0
-

dekuju. jeste mam posledni dotaz: kdyz budu v dotazu z androidu posilat cookie k autentizaci, jak ji podstrcim nette, abych si pak mohl klasicky zjistit v kodu aktualne prihlaseneho uzivatele ?

Filip Procházka
Moderator | 4668
+
0
-

Cookies se přenáší v hlavičkách. Když ji dáš do hlavičky, Nette si ji samo všimne a vytáhne správnou session a budeš mít přístupnou identitu, jaká se vytvořila po přihlášení.