GadgetsSpec
A iWiW Fejlesztői Wiki wikiből
Az iWiW Gadgets API a következő szabványok egy részét valósítja meg:
Tartalomjegyzék |
Nézetek
- A canvas view hasznos szélessége 750 pixel.
- A profile view hasznos szélessége 565 pixel.
Más view jelenleg nem támogatott.
Gadget XML korlátozások
Az iWiWen használható opensocial gadgetek leíró xmljének a Gadget XML reference-ben leírtakon kívül az alábbiaknak kell megfelelni:
Hossz-korlátozások és kötelezőségek
| Paraméter | Hossz | Kötelezőség |
| Gadget spec xml url | 255 | kötelező |
| ModulePrefs[@title] | 500 | kötelező |
| ModulePrefs[@title_url] | 200 | opcionális |
| ModulePrefs[@author] | 100 | kötelező |
| ModulePrefs[@author_email] | 50 | kötelező |
| ModulePrefs[@screenshot] | 200 | opcionális |
| ModulePrefs[@thumbnail] | 200 | opcionális |
| ModulePrefs[@description] | 4000 | opcionális |
| ModulePrefs/Icon | 200 | opcionális |
A gadget XML-ben megadható képek méretei
Az egységes megjelenés érdekében a gadget XML-ben metaadatként megadható képek (ikon, screenshot, stb.) a következőknek kell megfelelni:
| ModulePrefs/Icon | 16x16 | az alkalmazás "favikonja" |
|
|---|---|---|---|
| ModulePrefs[@thumbnail] | 32x32 | az alkalmazás ikonja |
|
| ModulePrefs[@screenshot] | 546x(max)800 | képernyőkép |
|
| promó kép* | 380x250 | kiemelt alkalmazás promóképe |
|
* A promó kép URLjét a rendszer az alkalmazás thumbnail URLből képezi:
- ha az url utolsó / utáni része tartalmaz .-ot, az utolsó . elé illeszti a '_promo' karaktereket
- ha nem, az url vége után illetszti a '_promo' karaktereket
- pl:
http://foo.com/bar/baz.png -> http://foo.com/bar/baz_promo.png
http://foo.com/bar/baz -> http://foo.com/bar/baz_promo
A fenti méretek (ha azt külön nem jelezzük) fix méretek, azaz ha a képméret eltér a fentiektől, az a felületen a megadott méretre torzítva fog megjelenni.
A képek tetszőleges webes fájlformátumban lehetnek (jpg, png, gif). Ikon és thumbnail esetén ha az nem tölti ki a megadott területet (pl. lekerekítettek a szélei) célszerű valamely átlátszóságot támogató formátumot használni (png, gif).
Tudnivalók Proxy és Cache témakörben
Általában ezekről
Nagyon fontos, hogy minden fejlesztő megértse, a cache és proxy működés nem ellene, hanem érte van. Fontosnak tartjuk, hogy a felhasználók körében népszerű alkalmazásoknak ne kelljen hatalmas technológiai hátteret kiépíteni ahhoz, hogy egyszerűbb vagy bonyolultabb funkcióikkal elkápráztassák a nagyérdeműt. Éppen ezért igyekszünk az alkalmazásokat kiszolgáló szerverekről minél több terhet levenni, ezzel mind az iWiW, mind az alkalmazások felhasználói élménye nem a hardver eszközöknek lesz kiszolgáltatva. Bármennyire is bosszantó tehát a cache és proxy működése, kérjük megértéseteket. Azt azonban le kell szögeznünk, hogy célunk mindenképpen a gördülékeny fejlesztés és az akadálytalan alkalmazás működés.
Gadget XML Cache
A GadgetXML eléggé cache-elt. Ezért fontos, hogy soha ne dinamikusan állítsuk elő, az egyes javascript funkciók hajtsák meg az alkalmazást inkább. A GadgetXML Cache azonban egyszerűen, egy gombnyomással kiüthető, ehhez a Fejlesztői Portálon a Vezérlőpult alatt találtok lehetőséget. Bővebben: Az iWiW Fejlesztői Portálról
Proxy - Rewrite
A Gadgetekben definiált View-k HTML tartalmát újraírjuk, az egyes url-eket "proxisítjuk". Ez annyit tesz, hogy minden kép, css, stb. keresztülfut a proxy infrastruktúránkon, ahol az alábbi logika alapján történik a cache:
- minden tartalmat minimum időre gyorsítótárazunk. homokozóban ez maximum 15 újra 1 perc csak azért, hogy szokjátok, azonban éles környezetben hosszabb idő 1 nap
- ha letelik a minimum TTL, akkor a kiszoglált header információk alapján dől el, hogy továbbra is cache-ből szolgáljuk ki a tartalmat, bekérdezzen-e a szerver változásért vagy mindenképpen friss verziót kérjen le
Proxy - makeRequest
Erősen javasoljuk, hogy mikor az API-n keresztül külső tartalmakat kérsz le, akkor használd a proxy lehetőségeket, ezzel is védve saját, vagy más érintett oldalak kiszolgálását. Ebben az esetben a TTL megadását Rád bízzuk, a további cache-elés az előzőekben leírtak szerint történik.
Gadget életciklusának eseményei
A rendszer pillanatnyilag 2 esetben küld értesítést az alkalmazások backendje felé:
- Felhasználó rögzíti magának az alkalmazást (addapp)
- Felhasználó törli az alkalmazást (removeapp)
Mindkét esetben SignedRequest-et küldd a rendszer. Bövebben: SignedRequest és oAuth. Fontos, hogy az url-ek meghívása aszinkron módon történik (azaz nem a felvétel/törlés pillanatában, hanem előfordulhat, hogy egy későbbi időpontban), és a meghívásuk nem garantált (pl. ha a backend nem válaszol a hívásra, vagy hibára fut, nincs garantálva, hogy az iWiW egy későbbi időpontban újrap róbálkozik).
A lifecycle eventekről bővebben itt: OpenSocial Specification - 4.1.7 Lifecycle Events
Támogatott szolgáltatások (feature)
- settitle
- flash
- analytics
- dynamic-heigth
- views
- tabs
- pubsub
OAuth
- OAuth alapú authentikáció során az egyes tokenek tárolása maximum 2 napig történik meg.
TODO
- message templetek és limitek
- os template-ek
- gadget cache
- makerequest cache
