Geliştirici Dokümanları

Bir Restomenum eklentisini uçtan uca geliştirmek için ihtiyacın olan her şey: eklenti oluşturma, manifest, OAuth Connect, token exchange, webhook event'leri, akış-durduran hook'lar ve iframe Custom UI. Aşağıdaki adımlar geliştirici yolculuğunu sırasıyla anlatır.

Eklenti yaşam döngüsü

Eklenti oluştur ──► client_secret üret ──► Manifest (sürüm) tanımla
      │                                              │
      ▼                                              ▼
  İncelemeye gönder ──► admin onay ──► Yayında ──► Marketplace
                                          │
        Tenant kurar ──► OAuth Connect ───┤
                                          ▼
              /connect (code) ──► Token exchange ──► { apiKey, webhookSecret, tenantId, scopes }
                                          │
                ┌─────────────────────────┼─────────────────────────┐
                ▼                         ▼                         ▼
          Webhook event'leri        Action Hook'lar          iframe Custom UI
          (imzalı, async)        (akışı durdurur, senkron)   (App Bridge)

Adım adım

  1. Eklenti oluştur. Panelde Yeni Eklenti → slug, ad, açıklama, kategori. Slug global benzersizdir ve OAuth client_id olur.
  2. client_secret üret. Eklenti detayında “Secret Üret”. Yalnız bir kez gösterilir; backend’inde sakla. Sürüm oluşturmadan önce gereklidir.
  3. Manifest (sürüm) tanımla. Tek Origin + path’ler, abone olunan event’ler, istenen scope’lar, Custom UI sayfaları, formlar, hook’lar ve aksiyon butonları.
  4. İncele & yayınla. “İncelemeye gönder” → admin onayı → published → marketplace’te görünür.
  5. Kurulum & OAuth Connect. Tenant eklentiyi kurar; tarayıcı /connect adresine ?code&state ile döner.
  6. Token exchange. /plugin-api/oauth/token’a client_id + client_secret + code gönder → apiKey, webhookSecret, tenantId, scopes al.
  7. Event’leri al. /webhook endpoint’in imzalı POST alır; imzayı doğrula ve işle.
  8. (Opsiyonel) Akış-durduran hook’lar. Hook’lar ile örn. masa kapatmadan önce form gösterip onay bekle.
  9. (Opsiyonel) iframe Custom UI. Sayfalar, session token ve iframe güvenliği.
  10. (Opsiyonel) Aksiyon butonları. Butonlar ile panel slot’una buton koy; type:"hook" hedefini ayrı bir Action ucuna (actionUrl) yönlendir — senkron { success, message, level, display } dön. Etkileşim yalnız id taşır; dolu veriyi Data API'den çek.
Bu doküman yalnız geliştirici portalı + eklenti geliştirme perspektifini anlatır. Restomenum’un içsel altyapısı (dispatch, depolama vb.) kapsam dışıdır.