Canali
I canali sono il meccanismo centrale per la gestione degli aggiornamenti delle app in Capgo. Ti permettono di controllare come e quando i tuoi utenti ricevono gli aggiornamenti, abilitando funzionalità come test A/B, rollout graduali e aggiornamenti specifici per piattaforma.
Comprendere i Canali
Section titled “Comprendere i Canali”Un canale rappresenta un percorso di distribuzione per gli aggiornamenti della tua app. Ogni canale può essere configurato con regole e vincoli specifici:
- Controllo Versione: Specifica quale versione ricevono gli utenti
- Targeting Piattaforma: Indirizza piattaforme specifiche (iOS/Android)
- Politiche di Aggiornamento: Controlla come vengono consegnati gli aggiornamenti
- Restrizioni Dispositivo: Gestisci quali dispositivi possono accedere agli aggiornamenti
Opzioni di Configurazione dei Canali
Section titled “Opzioni di Configurazione dei Canali”- public: Imposta come canale predefinito per i nuovi dispositivi
- disableAutoUpdateUnderNative: Impedisce gli aggiornamenti quando la versione nativa dell’app del dispositivo è più recente della versione di aggiornamento disponibile nel canale (es., dispositivo è alla versione 1.2.3, ma il canale ha 1.2.2)
- disableAutoUpdate: Controlla il comportamento di aggiornamento (“major”, “minor”, “version_number”, “none”)
- ios/android: Abilita/disabilita per piattaforme specifiche
- allow_device_self_set: Permetti ai dispositivi di scegliere il loro canale
- allow_emulator: Consenti aggiornamenti su dispositivi emulatori
- allow_dev: Consenti aggiornamenti su build di sviluppo
Best Practice
Section titled “Best Practice”- Canale di Test: Mantieni un canale di test per la validazione interna
- Rollout Graduale: Usa più canali per un deployment graduale degli aggiornamenti
- Separazione Piattaforma: Crea canali separati per iOS e Android quando necessario
- Controllo Versione: Usa il versionamento semantico per percorsi di aggiornamento chiari
Endpoint
Section titled “Endpoint”https://api.capgo.app/channel/
Crea o aggiorna una configurazione del canale.
Request Body
Section titled “Request Body”type disable_update = "major" | "minor" | "version_number" | "none"interface ChannelSet { app_id: string channel: string version?: string public?: boolean disableAutoUpdateUnderNative?: boolean disableAutoUpdate?: disable_update ios?: boolean android?: boolean allow_device_self_set?: boolean allow_emulator?: boolean allow_dev?: boolean}Esempio di Richiesta
Section titled “Esempio di Richiesta”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, "allow_emulator": true }' \ https://api.capgo.app/channel/Risposta di Successo
Section titled “Risposta di Successo”{ "status": "ok"}https://api.capgo.app/channel/
Recupera le informazioni del canale. Restituisce 50 canali per pagina.
Parametri Query
Section titled “Parametri Query”app_id: Richiesto. L’ID della tua apppage: Opzionale. Numero di pagina per la paginazionechannel: Opzionale. Nome del canale specifico da recuperare
Esempi di Richiesta
Section titled “Esempi di Richiesta”# Ottieni tutti i canalicurl -H "authorization: your-api-key" \ "https://api.capgo.app/channel/?app_id=app_123"
# Ottieni un canale specificocurl -H "authorization: your-api-key" \ "https://api.capgo.app/channel/?app_id=app_123&channel=beta"
# Ottieni la pagina successivacurl -H "authorization: your-api-key" \ "https://api.capgo.app/channel/?app_id=app_123&page=1"Tipo di Risposta
Section titled “Tipo di Risposta”interface Channel { id: number; created_at: string; name: string; app_id: string; version: { id: number, name: string }; created_by: string; updated_at: string; public: boolean; disableAutoUpdateUnderNative: boolean; disableAutoUpdate: boolean; allow_emulator: boolean; allow_dev: boolean;}Esempio di Risposta
Section titled “Esempio di Risposta”{ "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 } ]}DELETE
Section titled “DELETE”https://api.capgo.app/channel/
Elimina un canale. Nota che questo influenzerà tutti i dispositivi che utilizzano questo canale.
Parametri Query
Section titled “Parametri Query”interface Channel { channel: string app_id: string}Esempio di Richiesta
Section titled “Esempio di Richiesta”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/Risposta di Successo
Section titled “Risposta di Successo”{ "status": "ok"}Gestione degli Errori
Section titled “Gestione degli Errori”Scenari di errore comuni e le loro risposte:
// Canale non trovato{ "error": "Channel not found", "status": "KO"}
// Formato versione non valido{ "error": "Invalid version format. Use semantic versioning", "status": "KO"}
// Politica di aggiornamento non valida{ "error": "Invalid disableAutoUpdate value", "status": "KO"}
// Permesso negato{ "error": "Insufficient permissions to manage channels", "status": "KO"}Casi d’Uso Comuni
Section titled “Casi d’Uso Comuni”- Test Beta
{ "app_id": "app_123", "channel": "beta", "version": "1.2.0-beta", "public": false, "allow_emulator": true, "allow_dev": true}- Rollout in Produzione
{ "app_id": "app_123", "channel": "production", "version": "1.2.0", "public": true, "disableAutoUpdate": "minor"}- Aggiornamenti Specifici per Piattaforma
{ "app_id": "app_123", "channel": "ios-hotfix", "version": "1.2.1", "ios": true, "android": false}