Kartlar
Bu sayfa İngilizceden çevrilmiştir. İkisi arasında fark varsa İngilizce sayfa doğrudur. İngilizce sayfayı oku
Bir kart, Lingara’nın kendi stiliyle çizdiği kısa bir öğe listesidir. Giriş alanları, görseller, betikler veya işaretleme yoktur. Bir uygulama öğrencinin ekranına kendi kodunu ya da kendi görünümünü koyamaz; bu yüzden her kart Lingara’nın geri kalanı gibi okunur. Yanıtınız JSON’dur: içinde öğeleri olan bir card (bu öğeler elements altında durur) ve isteğe bağlı olarak bir tutor_note (bkz. Öğretmen notu).
Öğeler
Her öğenin bir type alanı vardır ve bu şu sekiz türden biridir:
| Öğe | Alanlar | Ne gösterir |
|---|---|---|
heading | text, level | Bir başlık. level 1 veya 2’dir ve başka herhangi bir değer 2 olur. Metni en fazla 80 karakterdir. |
text | text, lang | En fazla 600 karakterlik bir paragraf. Satır sonunun korunduğu tek yer burasıdır. |
term | word, reading, gloss, lang | Öğrenilecek bir kelime. Yalnızca word zorunludur. Kelime en fazla 60 karakter, okunuş 120 ve açıklama 160 karakterdir. |
list | items | En fazla 20 madde. Her madde bir text veya bir term olup o adı taşıyan öğeyle aynı alanlara sahiptir. |
progress | value, label | Bir ilerleme çubuğu. value 0 ile 1 arasındadır ve etiket en fazla 60 karakterdir. |
divider | Kartın bölümleri arasında bir çizgi. | |
button | label, action, style | action değerini sunucunuza gönderen bir düğme. style ya primary ya da secondary olur ve etiket en fazla 32 karakterdir. |
link | label, url | Öğrencinin, Lingara ona sorduktan sonra tarayıcısında açtığı bir bağlantı. Etiket en fazla 60 karakterdir. |
Bir lang, Lingara’nın doğru yazı sistemini çizmesi için ja gibi bir dil etiketidir. Dil etiketi olmayan bir değer kaldırılır.
Sınırlar
- Bir kart en fazla 24 öğe içerir. 24. öğeden sonraki öğeler atılır.
- Bir liste en fazla 20 madde içerir. 20. maddeden sonraki maddeler atılır ve boş bir liste de atılır.
- Bir kart en fazla 4 düğme içerir. 4. düğmeden sonraki düğmeler atılır.
- Sınırından uzun metin sığacak şekilde kısaltılır ve
…ile biter. Karakterler Unicode skaler değerleri olarak sayılır. - Denetim karakterleri ve yön geçersiz kılmaları her dizeden kaldırılır.
- Adresi HTTPS olmayan, bir kullanıcı adı taşıyan veya bir IP adresine işaret eden bağlantı atılır.
actiondeğeri 64 karakterden uzun olan ya da harfler, rakamlar,_,.,:ve-dışında bir şey kullanan düğme atılır.- Bu kurallardan sonra hiç metni kalmayan öğe atılır.
Bu kurallar hoşgörülüdür: Lingara sığmayanı kısaltır veya atar ve geri kalanını çizer. Kitler siz yanıt vermeden önce aynı kuralları uygular; böylece neyin değişeceğini görebilirsiniz.
Katı ayrıştırma
Sözcük dağarcığı kapalıdır. Bilinmeyen bir öğe türü, bir öğenin sahip olmadığı bir alan, yanlış JSON türünde bir değer ya da hiç JSON olmayan bir yanıt, yanıtın tamamını yedek karta dönüştürür. Lingara, okuyamadığı bir kartın bir kısmını asla çizmez.
Boyut ve süre
Bir yanıt en fazla 32 KiB olabilir. Lingara sunucunuza bir render isteğini yanıtlamak için 3 saniye, bir eylemi yanıtlamak için 5 saniye verir ve hiçbirini yeniden denemez. Bir yanıtın durumu 200 ve içerik türü JSON olmalıdır. Yönlendirmeler izlenmez.
Düğmeler ve eylemler
Öğrenci bir düğmeye bastığında Lingara sunucunuza o düğmenin action değerini taşıyan bir eylem isteği gönderir. Sunucunuz, eskisinin yerini alan yeni bir kartla yanıt verir. Aynı basış iki kez gelebilir; bu yüzden her eylemi tekrarlanması güvenli olacak şekilde tasarlayın.
Bir kart başarısız olduğunda
Lingara çizebileceği bir kart alamadığında öğrenci, kendi dilinde Lingara’nın kendi “Bu uygulama yanıt vermedi” kartını ya da güncel değil olarak işaretlenmiş son geçerli kartınızı görür. Öğrenciye nedeni asla söylenmez. Nedeni yalnızca siz, uygulamanın sahibi olarak görürsünüz:
- Yanıtınız:
invalid(Lingara’nın okuyabileceği bir kart değil),empty(sınırlardan sonra gösterilecek bir şey kalmadı) veyatoo_large(32 KiB’den fazla). - Sunucunuza ulaşmak:
timeout,http_error(200 dışındaki herhangi bir durum),transport(süresi dolmuş bir sertifika gibi bir bağlantı veya TLS hatası) veyablocked(özel ya da doğrudan IP olarak yazılmış bir adrese giden birrender_url). - Lingara tarafı:
unavailable(Lingara isteği imzalayamadı) veyabusy(zaten işlenmekte olan çok fazla istek var).