Layout — launcher-ийн нүүр дэлгэц¶
Gerege App-ын launcher-ийн нүүр дэлгэцэд ямар апп, ямар дарааллаар, ямар гарчгийн доор харагдахыг оператор шийднэ (server-driven layout, openpay-ийн layout-ийн порт). Хөгжүүлэгч layout-ийг өөрчлөхгүй — апп чинь нүүрэнд хаана гарахыг оператортой тохирно. Энэ баримт нь хөгжүүлэгчид юу харагдахыг ойлгуулах, host/оператор талын хэрэгжүүлэгчид зориулагдсан.
1. Хувилбар¶
Layout нь хувилбартай: draft → published → archived. Нэг удаад нэг л published. Нийтлэхэд өмнөх
нь archived болно; буцаах (rollback) нь архивласан хувилбарыг шинэ хувилбар болгон дахин нийтэлнэ —
түүх зөвхөн өсдөг, «мягмар гарагт хүмүүс юу харсан бэ» гэдэгт үргэлж хариу бий.
2. Section-ууд¶
type |
Утга | Талбар |
|---|---|---|
featured |
Гараар сонгосон апп-уудын тууз, өгсөн дарааллаар | items (slug) |
grid |
Гарчигтай grid, өгсөн дарааллаар | title, items, columns (анхдагч 4) |
category |
Нэг ангиллын апп: items-д заасан нь эхэнд, бусад нь нэрээр |
category, items?, limit? |
categories |
Ангиллын tile-ийн мөр, тус бүр хэдэн апп-тайг харуулна | items (ангиллын код) |
Section бүр id (^[a-z0-9][a-z0-9-]{0,39}$)-тэй. Хязгаар: ≤ 30 section, section-д ≤ 24 item, гарчиг ≤ 80,
body ≤ 64 KB. Мэдэхгүй талбар → алдаа (бичгийн алдаа хадгалагдаж, чимээгүй үл тоомсорлогдохгүй).
Slug-уудыг нийтлэх (болон rollback) үед шалгана — draft нь review-д байгаа апп-ыг нэрлэж болно. Нийтлэгдсэний дараа түдгэлзүүлсэн апп хүн бүрийн уншилтад өөрөө алга болно.
3. Хүний тал — GET /api/v1/miniapp/layout?channel=ios|android|web¶
Хүний session-ээр. Нийтлэгдсэн layout-ийг, тухайн хүн тухайн төхөөрөмж дээр нээж болох апп-уудаар
(нийтлэгдсэн + суваг таарсан; хүний өөрийн draft ороогүй) шүүж буцаана. Нийтлэгдсэн layout байхгүй бол
default: true — апп-тай ангилал бүрийг агуулсан анхдагч layout.
{ "version": 7, "default": false, "sections": [
{ "id": "top", "type": "featured", "title": "Онцлох", "apps": [ { "slug": "esim", "name": "Аяллын eSIM", "…": "…" } ] },
{ "id": "cats", "type": "categories", "title": "Ангилал",
"categories": [ { "category": "travel", "title": "Аялал", "count": 3 } ] } ] }
apps[] нь launcher-ийн жагсаалттай ижил publicApp (slug, нэр, icon, ангилал, төлөв, scope, холбогдсон эсэх …).
Cache-Control: private, no-cache.
4. Операторын тал — /api/v1/miniapp/review/layouts¶
Зөвхөн MINIAPP_OPERATOR_TENANT_ID байгууллага (review-тэй ижил).
| Method | Зам | |
|---|---|---|
| GET | /review/layouts |
Бүх хувилбар |
| POST | /review/layouts |
{sections, note?} → шинэ draft |
| GET · PATCH · DELETE | /review/layouts/{id} |
Draft-ыг унших / засах / устгах |
| POST | /review/layouts/{id}/publish |
Draft-ыг нийтлэх (slug бүр нийтлэгдсэн апп, category-д pin хийсэн нь тэр ангиллынх) |
| POST | /review/layouts/{id}/rollback |
Архивласан хувилбарыг шинэ хувилбар болгон нийтлэх |
| GET | /review/layouts/{id}/preview?channel= |
Аль ч хувилбарыг (draft ч) хүнд харагдах байдлаар |