Saluran
Copas prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Saluran adalah mekanisme inti untuk mengelola pembaruan aplikasi di Capgo. Mereka memungkinkan Anda untuk mengontrol bagaimana dan kapan pengguna Anda menerima pembaruan, memungkinkan fitur seperti pengujian A/B, peluncuran rolut, dan pembaruan spesifik platform.
Mengerti Saluran
Judul bagian “Mengerti Saluran”Saluran mewakili jalur distribusi untuk pembaruan aplikasi Anda. Setiap saluran dapat dikonfigurasi dengan aturan dan keterbatasan tertentu:
- Kontrol Paket (Versi): Tentukan paket (versi) yang diterima pengguna
- Target Platform: Targetkan platform tertentu (iOS/Android/Electron)
- Kebijakan Pembaruan: Mengontrol bagaimana pembaruan disampaikan
- Keterbatasan Perangkat: Mengelola perangkat mana yang dapat mengakses pembaruan
Konfigurasi Saluran
Judul Bagian “Konfigurasi Saluran”- publik: Tetapkan saluran default untuk perangkat baru
- : Mencegah pembaruan ketika versi aplikasi asli perangkat lebih baru dari paket pembaruan (versi) yang tersedia di saluran (misalnya, perangkat berada di versi aplikasi asli 1.2.3, tetapi saluran memiliki paket (versi) 1.2.2): Kendalikan perilaku pembaruan (“besar”, “kecil”, “nomor versi”, “tidak ada”)
- ios/android/electron: Aktifkan/dihilangkan untuk platform tertentu
- : Izinkan perangkat untuk menentukan saluran: Tetapkan saluran default untuk perangkat baru
- : Mencegah pembaruan ketika versi aplikasi asli perangkat lebih baru dari paket pembaruan (versi) yang tersedia di saluran (misalnya, perangkat berada di versi aplikasi asli 1.2.3, tetapi saluran memiliki paket (versi) 1.2.2): Kendalikan perilaku pembaruan (“besar”, “kecil”, “nomor versi”, “tidak ada”)
- izin_emulator: Izin perbarui perangkat emulator
- izin_dev: Izin perbarui bangunan pengembangan
Praktik Terbaik
Bagian berjudul “Praktik Terbaik”- Saluran Pengujian: Tahan saluran pengujian untuk validasi internal
- Rollout Langkah demi Langkah: Gunakan beberapa saluran untuk penggunaan update berkelanjutan
- Pemisahan Platform: Buat saluran terpisah untuk iOS, Android, dan Electron jika diperlukan
- Paket (versi) Kontrol: Gunakan versi semantik untuk jalur pembaruan yang jelas
Endpoint
Bagian berjudul “Endpoint”https://api.capgo.app/channel/
Buat atau perbarui konfigurasi saluran.
Tubuh Permintaan
Bagian berjudul “Tubuh Permintaan”type disable_update = "major" | "minor" | "version_number" | "none"interface ChannelSet { app_id: string channel: string version?: string // bundle (version) name public?: boolean disableAutoUpdateUnderNative?: boolean disableAutoUpdate?: disable_update ios?: boolean android?: boolean electron?: boolean allow_device_self_set?: boolean allow_emulator?: boolean allow_dev?: boolean}Contoh Permintaan
Bagian berjudul “Contoh Permintaan”curl -X POST \ -H "authorization: your-api-key" \ -H "Content-Type: application/json" \ -d '{ "app_id": "app_123", "channel": "beta", "version": "1.2.0", "public": false, "disableAutoUpdate": "minor", "ios": true, "android": true, "electron": true, "allow_emulator": true }' \ https://api.capgo.app/channel/Respons Sukses
Bagian berjudul “Respons Sukses”{ "status": "ok"}https://api.capgo.app/channel/
Ambil informasi saluran. Mengembalikan 50 saluran per halaman.
Parameter Pemintaan
Bagian berjudul “Parameter Pemintaan”app_idID Aplikasi: Wajib. ID aplikasi AndapageHalaman: Opsional. Nomor halaman untuk pengaturan halamanchannel: Opsional. Nama saluran spesifik untuk diambil
Contoh Permintaan
Bab berjudul “Contoh Permintaan”# Get all channelscurl -H "authorization: your-api-key" \ "https://api.capgo.app/channel/?app_id=app_123"
# Get specific channelcurl -H "authorization: your-api-key" \ "https://api.capgo.app/channel/?app_id=app_123&channel=beta"
# Get next pagecurl -H "authorization: your-api-key" \ "https://api.capgo.app/channel/?app_id=app_123&page=1"Jenis Respon
Bab berjudul “Jenis Respon”interface Channel { id: number; created_at: string; name: string; app_id: string; version: { // bundle (version) assigned to the channel id: number, name: string }; created_by: string; updated_at: string; public: boolean; disableAutoUpdateUnderNative: boolean; disableAutoUpdate: boolean; allow_emulator: boolean; allow_dev: boolean;}Dalam respon di bawah, version merujuk pada paket (versi) yang ditugaskan ke saluran.
Contoh Respon
Bab berjudul “Contoh Respon”{ "data": [ { "id": 1, "name": "production", "app_id": "app_123", "version": { "id": 1, "name": "1.0.0" }, "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:00:00Z", "created_by": "user_123", "public": true, "disableAutoUpdateUnderNative": false, "disableAutoUpdate": false, "allow_emulator": false, "allow_dev": false } ]}HAPUS
Judul bagian “HAPUS”https://api.capgo.app/channel/
Hapus saluran. Perlu diingat bahwa ini akan mempengaruhi semua perangkat yang menggunakan saluran ini.
Parameter Kueri
Judul bagian “Parameter Kueri”interface Channel { channel: string app_id: string}Contoh Permintaan
Judul bagian “Contoh Permintaan”curl -X DELETE \ -H "authorization: your-api-key" \ -H "Content-Type: application/json" \ -d '{ "app_id": "app_123", "channel": "beta" }' \ https://api.capgo.app/channel/Respons Sukses
Bagian Judul “Respon Berhasil”{ "status": "ok"}Pengelolaan Kesalahan
Bagian Judul “Pengelolaan Kesalahan”Skenario kesalahan umum dan responnya:
// Channel not found{ "error": "Channel not found", "status": "KO"}
// Invalid bundle (version) format{ "error": "Invalid version format. Use semantic versioning", "status": "KO"}
// Invalid update policy{ "error": "Invalid disableAutoUpdate value", "status": "KO"}
// Permission denied{ "error": "Insufficient permissions to manage channels", "status": "KO"}Penggunaan Umum
Bagian Judul “Penggunaan Umum”- Pengujian Beta
{ "app_id": "app_123", "channel": "beta", "version": "1.2.0-beta", "public": false, "allow_emulator": true, "allow_dev": true}- Peluncuran Produksi
{ "app_id": "app_123", "channel": "production", "version": "1.2.0", "public": true, "disableAutoUpdate": "minor"}- Perbarui Spesifik Platform
{ "app_id": "app_123", "channel": "ios-hotfix", "version": "1.2.1", "ios": true, "android": false}