Channels
Les canaux constituent le mécanisme principal de gestion des mises à jour des applications dans Capgo. Ils vous permettent de contrôler comment et quand vos utilisateurs reçoivent les mises à jour, en activant des fonctionnalités telles que les tests A/B, les déploiements par étapes et les mises à jour spécifiques à la plate-forme.
Comprendre les chaînes
Section titled “Comprendre les chaînes”Un canal représente une piste de distribution pour les mises à jour de votre application. Chaque canal peut être configuré avec des règles et contraintes spécifiques :
- Contrôle du bundle (version) : spécifiez quel bundle (version) les utilisateurs reçoivent - Ciblage de plates-formes : ciblez des plates-formes spécifiques (iOS/Android/Electron)
- Politiques de mise à jour : contrôlez la manière dont les mises à jour sont fournies
- Restrictions relatives aux appareils : gérez quels appareils peuvent accéder aux mises à jour
## Options de configuration des canaux
- public : définir comme canal par défaut pour les nouveaux appareils
- disableAutoUpdateUnderNative : empêche les mises à jour lorsque la version de l’application native de l’appareil est plus récente que le bundle de mise à jour (version) disponible dans le canal (par exemple, l’appareil utilise la version 1.2.3 de l’application native, mais le canal possède un bundle (version) 1.2.2)
- disableAutoUpdate : contrôle le comportement de la mise à jour (“majeur”, “mineur”, “numéro_version”, “aucun”)
- ios/android/electron : activer/désactiver pour des plates-formes spécifiques
- allow_device_self_set : laissez les appareils choisir leur canal
- allow_emulator : Autoriser les mises à jour sur les appareils émulateurs
- allow_dev : Autoriser les mises à jour sur les versions de développement
## meilleures pratiques
- Canal de test : maintenez un canal de test pour la validation interne
- Déploiement par étapes : utilisez plusieurs canaux pour un déploiement progressif des mises à jour
- Séparation de plate-forme : créez des canaux séparés pour iOS, Android et Electron si nécessaire.
- Bundle (version) Control : utilisez le versioning sémantique pour des chemins de mise à jour clairs
Points de terminaison
Section titled “Points de terminaison”POSTER
Section titled “POSTER”https://api.capgo.app/channel/
Créez ou mettez à jour une configuration de canal.
Corps de la demande
Section titled “Corps de la demande”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}Exemple de demande
Section titled “Exemple de demande”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/Réponse réussie
Section titled “Réponse réussie”{ "status": "ok"}OBTENIR
Section titled “OBTENIR”https://api.capgo.app/channel/
Récupérer les informations sur la chaîne. Renvoie 50 chaînes par page.
Paramètres de requête
Section titled “Paramètres de requête”app_id: obligatoire. L’ID de votre applicationpage: Facultatif. Numéro de page pour la paginationchannel: Facultatif. Nom de chaîne spécifique à récupérer
Exemples de requêtes
Section titled “Exemples de requêtes”# 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"Type de réponse
Section titled “Type de réponse”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;}Dans la réponse ci-dessous, version fait référence au bundle (version) attribué au canal.
Exemple de réponse
Section titled “Exemple de réponse”{ "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 } ]}SUPPRIMER
Section titled “SUPPRIMER”https://api.capgo.app/channel/
Supprimer une chaîne. Notez que cela affectera tous les appareils utilisant ce canal.
Paramètres de requête
Section titled “Paramètres de requête”interface Channel { channel: string app_id: string}Exemple de demande
Section titled “Exemple de demande”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/Réponse réussie
Section titled “Réponse réussie”{ "status": "ok"}Gestion des erreurs
Section titled “Gestion des erreurs”Scénarios d’erreur courants et leurs réponses :
// 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"}Cas d’utilisation courants
Section titled “Cas d’utilisation courants”- Test bêta
{ "app_id": "app_123", "channel": "beta", "version": "1.2.0-beta", "public": false, "allow_emulator": true, "allow_dev": true}- Déploiement de la production
{ "app_id": "app_123", "channel": "production", "version": "1.2.0", "public": true, "disableAutoUpdate": "minor"}- Mises à jour spécifiques à la plateforme
{ "app_id": "app_123", "channel": "ios-hotfix", "version": "1.2.1", "ios": true, "android": false}