En un coup d’œil
Construction et options
Méthode par méthode
Types
Les types sont livrés avec le SDK et reprennent les noms de champs de l’API. Les principaux renommages depuis@squarecloud/api-types et les classes de la v5 :
Erreurs
- Les codes synthétiques ont disparu (
RATE_LIMIT_EXCEEDED,PAYLOAD_TOO_LARGE,SERVER_UNAVAILABLE,UNKNOWN_ERROR_<status>) : c’est le vrai code de l’API qui remonte (RATE_LIMITED,KEEP_CALM,DAILY_SNAPSHOTS_LIMIT_REACHED,FILE_TOO_LARGE…). - Aucune réponse :
status: 0avecNETWORK_ERROR(la cause danscause) ouTIMEOUT. Un corps sans code donneUNKNOWN_ERRORavec le vraistatuset le messageHTTP <status>. instanceof TypeErrorn’est plus vrai pour les erreurs de l’API.- Une clé expirée donne 401
ACCESS_DENIED, comme une clé inconnue. - Les erreurs de
ai.chat(), authentification et limites de débit comprises, portent le code OpenAI en minuscules (access_denied,rate_limit_exceeded, …). - Un
start/stop/restartrefusé donne 409 avec uniquement un code :CONTAINER_ALREADY_STARTED,CONTAINER_ALREADY_STOPPED,CONTAINER_TEMPORARILY_SUSPENDED,CONTAINER_NOT_FOUND,CONTAINER_INSUFFICIENT_DISK_SPACE,CONTAINER_NETWORK_CONFLICTouACTION_FAILED.
Changements de comportement
- Les appels expirent : 30 s par tentative par défaut (la v5 n’avait pas de timeout), au moins 120 s pour les appels que le serveur maintient ouverts. Définissez
timeoutMs: 0pour n’en avoir aucun. files.write()traite une chaîne comme le contenu et l’envoie en texte brut ; les octets partent en base64, sans perte pour le binaire, et un contenu vide crée un fichier vide (même format de transmission que les SDKs Python et Go).files.read()demande du base64 et le décode.files.list()sur un répertoire manquant lève 404FILE_NOT_FOUNDau lieu de renvoyer[].snapshots.create()renvoie{ pending: true }sur un 202 au lieu de lever une erreur.- Les résultats de type chaîne ne sont jamais
undefined:setWebhooketresetCredentials("certificate")renvoient""quand l’API n’envoie rien ;deploys.current()renvoie{}. realtime()se reconnecte en cas de connexion interrompue et surREALTIME_RECONNECT(jusqu’à 3 fois d’affilée, au plus une ouverture toutes les 5,5 s).- Nouvelles tentatives : erreurs réseau sur GET et 503
UPLOAD_BUSY/ANALYTICS_BUSY(plusDATABASE_UNAVAILABLEsur GET), avec backoff. Un 429 n’est jamais réessayé.DATABASE_UNAVAILABLEpeut survenir après l’application d’une mutation : réessayez vous-même vos mutations idempotentes. - Les identifiants vides,
.et..échouent localement avecINVALID_ID. - Les valeurs de requête
undefined,""oufalsene sont pas envoyées.
Prochaines étapes
Client
Installez le SDK et créez un client.
Erreurs
Classe d’erreur, nouvelles tentatives et limites de débit.

