Devices
Devices mewakili instalasi individual aplikasi Anda yang dikelola oleh Capgo. API Devices memungkinkan Anda melacak dan mengelola perangkat, termasuk versi, saluran, dan status pembaruan mereka.
Memahami Devices
Section titled “Memahami Devices”Setiap perangkat memiliki karakteristik dan status unik:
- Platform: iOS atau Android
- Version: Versi bundle saat ini dan versi build native
- Environment: Produksi atau pengembangan, emulator atau perangkat fisik
- Channel: Penetapan saluran pembaruan saat ini
- Custom ID: Pengenal opsional untuk keperluan pelacakan Anda sendiri
Praktik Terbaik
Section titled “Praktik Terbaik”- Pelacakan Versi: Pantau versi perangkat untuk memastikan adopsi pembaruan
- Manajemen Saluran: Tetapkan perangkat ke saluran yang sesuai berdasarkan kebutuhan pengujian
- Kesadaran Lingkungan: Tangani lingkungan yang berbeda (prod/dev/emulator) dengan tepat
- Identifikasi Kustom: Gunakan ID kustom untuk integrasi dengan sistem Anda yang ada
Endpoints
Section titled “Endpoints”https://api.capgo.app/device/
Menghubungkan perangkat ke versi atau saluran tertentu.
Request Body
Section titled “Request Body”interface DeviceLink { app_id: string device_id: string version_id?: string // version name channel?: string // channel name}Contoh Permintaan
Section titled “Contoh Permintaan”curl -X POST \ -H "authorization: your-api-key" \ -H "Content-Type: application/json" \ -d '{ "app_id": "app_123", "device_id": "device_456", "channel": "beta" }' \ https://api.capgo.app/device/Respons Sukses
Section titled “Respons Sukses”{ "status": "ok"}https://api.capgo.app/device/
Mengambil informasi perangkat. Menggunakan paginasi berbasis kursor untuk pengambilan daftar perangkat besar yang efisien.
Parameter Query
Section titled “Parameter Query”app_id: Wajib. ID aplikasi Andadevice_id: Opsional. ID perangkat spesifik untuk mengambil satu perangkatcursor: Opsional. Kursor dari respons sebelumnya untuk paginasilimit: Opsional. Jumlah perangkat per halaman (default: 50)
Contoh Permintaans
Section titled “Contoh Permintaans”# Get all devices (first page)curl -H "authorization: your-api-key" \ "https://api.capgo.app/device/?app_id=app_123"
# Get specific devicecurl -H "authorization: your-api-key" \ "https://api.capgo.app/device/?app_id=app_123&device_id=device_456"
# Get next page using cursorcurl -H "authorization: your-api-key" \ "https://api.capgo.app/device/?app_id=app_123&cursor=2024-01-01T00:00:00Z|device_456"Tipe Respons (Daftar)
Section titled “Tipe Respons (Daftar)”Saat meminta beberapa perangkat (tanpa parameter device_id):
interface DeviceListResponse { data: Device[]; nextCursor?: string; // Kirim ini sebagai param 'cursor' untuk mendapatkan halaman berikutnya hasMore: boolean; // true jika ada lebih banyak halaman tersedia}
interface Device { updated_at: string; device_id: string; custom_id: string; version?: number; version_name: string | null; channel?: string; app_id: string; platform: "ios" | "android"; plugin_version: string; os_version: string; version_build: string; is_prod: boolean; is_emulator: boolean;}Tipe Respons (Perangkat Tunggal)
Section titled “Tipe Respons (Perangkat Tunggal)”Saat meminta perangkat spesifik dengan parameter device_id, mengembalikan objek perangkat secara langsung:
interface Device { updated_at: string; device_id: string; custom_id: string; version?: number; version_name: string | null; channel?: string; app_id: string; platform: "ios" | "android"; plugin_version: string; os_version: string; version_build: string; is_prod: boolean; is_emulator: boolean;}Contoh Respons (Daftar)
Section titled “Contoh Respons (Daftar)”{ "data": [ { "device_id": "device_456", "custom_id": "test-device-1", "version": 1, "version_name": "1.0.0", "app_id": "app_123", "platform": "ios", "plugin_version": "5.0.0", "os_version": "17.0", "version_build": "1", "is_prod": true, "is_emulator": false, "updated_at": "2024-01-01T00:00:00Z" } ], "nextCursor": "2024-01-01T00:00:00Z|device_456", "hasMore": true}Contoh Respons (Perangkat Tunggal)
Section titled “Contoh Respons (Perangkat Tunggal)”{ "device_id": "device_456", "custom_id": "test-device-1", "version": 1, "version_name": "1.0.0", "app_id": "app_123", "platform": "ios", "plugin_version": "5.0.0", "os_version": "17.0", "version_build": "1", "is_prod": true, "is_emulator": false, "updated_at": "2024-01-01T00:00:00Z", "channel": "production"}DELETE
Section titled “DELETE”https://api.capgo.app/device/
Memutuskan tautan perangkat dari penggantian salurannya. Ini mengatur ulang perangkat untuk menggunakan saluran defaultnya.
Query Parameters
Section titled “Query Parameters”interface Device { device_id: string app_id: string}Contoh Permintaan
Section titled “Contoh Permintaan”curl -X DELETE \ -H "authorization: your-api-key" \ -H "Content-Type: application/json" \ -d '{ "app_id": "app_123", "device_id": "device_456" }' \ https://api.capgo.app/device/Respons Sukses
Section titled “Respons Sukses”{ "status": "ok"}Penanganan Kesalahan
Section titled “Penanganan Kesalahan”Skenario kesalahan umum dan responsnya:
// Device not found{ "error": "Device not found", "status": "KO"}
// Invalid version{ "error": "Version not found", "status": "KO"}
// Invalid channel{ "error": "Channel not found", "status": "KO"}
// Permission denied{ "error": "Insufficient permissions to manage devices", "status": "KO"}Kasus Penggunaan Umum
Section titled “Kasus Penggunaan Umum”- Beta Device Registration
{ "app_id": "app_123", "device_id": "device_456", "channel": "beta"}- Version Override
{ "app_id": "app_123", "device_id": "device_456", "version_id": "1.1.0"}- Reset to Default Channel
// Use DELETE endpoint to remove overridesTips untuk Manajemen Perangkat
Section titled “Tips untuk Manajemen Perangkat”- Pemantauan: Periksa status perangkat dan distribusi versi secara teratur
- Pengujian: Gunakan ID kustom untuk mengidentifikasi perangkat uji dengan mudah
- Pemecahan Masalah: Lacak pembaruan perangkat dan penetapan saluran
- Kontrol Versi: Pantau versi aplikasi native untuk memastikan kompatibilitas