Sebuah JSON API public interface memungkinkan software bertukar data terstruktur melalui HTTP request dan response. Capgo menyediakan API RESTful bertipe untuk tim CapacitorJS dan Electron agar bisa mengontrol live updates, channels, bundles, dan pengiriman ke device secara terprogram.
Table of Contents
Memahami Dasar-dasar API JSON Publik Capgo
Capgo bukanlah direktori data umum. Antarmuka API JSON publiknya menghubungkan build system Anda dengan layanan cloud delivery Capgo, sehingga otomatisasi rilis dapat mempublikasikan dan mengarahkan signed web bundle tanpa menunggu review App Store atau Play Store. REST menggunakan metode HTTP yang umum seperti GET, POST, PUT, PATCH, dan DELETE, dengan JSON yang biasanya menjadi format respons, seperti yang dijelaskan dalam panduan REST API dari Postman.

Untuk Capgo, JSON adalah bahasa bersama antara skrip otomatisasi, job CI/CD, client TypeScript, dan platform delivery. Konsistensi tersebut membuat payload mudah dibaca di logs dan simpel untuk divalidasi sebelum deployment dimulai.
Apa yang Dikontrol oleh Interface
Gunakan endpoint JSON API publik untuk mengelola resource rilis operasional, termasuk:
- Bundle, aset web dan metadata yang membentuk update yang dapat di-deploy.
- Channel, seperti staging, beta, production, atau stream rilis khusus pelanggan.
- Versi, yang mengidentifikasi dan melacak build yang ditugaskan ke channel tersebut.
- Targeting perangkat, yang membantu mengarahkan rilis ke platform, versi aplikasi, sistem operasi, atau grup metadata tertentu.
- Data observabilitas, termasuk adopsi, kegagalan, aktivitas rollback, dan status per perangkat.
Request tipikal mengikuti urutan yang terprediksi. Pipeline Anda membuat atau menyiapkan bundle, mengirim metadata JSON ke Capgo, memeriksa status yang dikembalikan, lalu menetapkan rilis ke channel yang sesuai. Query selanjutnya dapat mengonfirmasi perangkat mana saja yang menerima update tersebut.
Ide utamanya: Anggap JSON Capgo sebagai kontrak kontrol rilis, bukan sekadar format data. Setiap field harus mendukung proses publishing, targeting, monitoring, atau pemulihan update aplikasi.
Mengapa Typed JSON Membantu
Payload bertipe mengurangi ambiguitas dalam codebase TypeScript. Identifier versi harus tetap string, flag rollout harus Boolean, dan jumlah perangkat harus numerik. Sebelum menyambungkan otomasi, definisikan interface untuk request dan response, lalu validasi field wajib dan nilai nullable.
Baca juga: Pelajari lebih lanjut penggunaan TypeScript dengan API.
Terapkan tiga kebiasaan dalam setiap integrasi:
- Periksa status code dan response body secara bersamaan, karena keberhasilan HTTP saja mungkin tidak menunjukkan penyelesaian deployment.
- Simpan identifier yang dikembalikan, terutama ID bundle, versi, dan channel, untuk panggilan berikutnya.
- Log dengan aman, dengan mengecualikan key API dan data perangkat yang sensitif.
Bagian referensi berikut menggunakan fondasi ini untuk menjelaskan autentikasi, payload upload, skema channel, query targeting, dan objek error. Untuk nama endpoint dan definisi field terbaru, verifikasi dokumentasi Capgo di capgo.app.
{\n“authorization”: “Bearer YOUR_CAPGO_API_KEY”,\n“contentType”: “application/json”,\n“accept”: “application/json”\n}
{ “success”: true, “bundleId”: “com.example.field-app”, “version”: “2.4.0”, “status”: “uploaded”, “bundleUuid”: “generated-bundle-identifier”, “createdAt”: “2026-01-15T10:30:00Z” }
{\n“defaultVersion”: “2.4.3”,\n“autoUpdate”: true,\n“rollbackProtection”: {\n“enabled”: true,\n“fallbackVersion”: “2.4.2”\n}\n}
{ “data”: [ { “timestamp”: “2026-02-04T09:00:00Z”, “installs”: 842, “rollbacks”: 3, “errors”: 11 }, { “timestamp”: “2026-02-04T10:00:00Z”, “installs”: 1276, “rollbacks”: 2, “errors”: 8 } ], “summary”: { “totalInstalls”: 2118, “totalRollbacks”: 5, “totalErrors”: 19 } }
{ “error”: { “code”: “INVALID_PARAMETER”, “message”: “Field ‘version’ wajib diisi”, “field”: “version”, “details”: { “expected”: “string”, “received”: “null” } } }
{\n“version”: “2.4.0”,\n“checksum”: “sha256-value”,\n“encryption”: true,\n“externalUrl”: “https://storage.example/bundle.zip}” }