Rapidy Développeurs

Démarrer

Choisir son SDK

Huit SDK officiels, un seul contrat. Ce qui est identique partout, ce qui est propre à chaque langage.

Les SDK disponibles

LangageVersionInstallationCe qu'il faut savoir
TypeScript0.1.0npm install @rapidy/sdkNode ≥ 18 (le fetch global suffit) et navigateur. Modèles typés.
Python0.1.0pip install rapidy-sdkPython ≥ 3.9. Zéro dépendance : urllib de la bibliothèque standard.
PHP0.1.0composer require rapidy/sdkPHP ≥ 8.1, PSR-4. Le choix pour WooCommerce et WordPress.
Ruby0.1.0gem install rapidyRuby ≥ 2.6. Zéro dépendance : net/http, json, openssl.
Go0.1.0go get github.com/Smartdev-Africa/rapidy/sdks/goGo ≥ 1.21. Zéro dépendance, transport injectable.
Java0.1.0net.rapidy:rapidy-sdk:0.1.0Java ≥ 17, compatible Kotlin. Transport JDK, Jackson pour le JSON.
C#0.1.0dotnet add package Rapidy.Sdknet8.0. Zéro dépendance : System.Net.Http + System.Text.Json.
Dart0.1.0dart pub add rapidy_sdkDart ≥ 3.6, Flutter. Modèles typés.

Aucun n'est obligatoire. L'API est du HTTP et du JSON ; un SDK vous épargne l'échappement des chemins, la taxonomie d'erreurs et la vérification des signatures de webhook — trois endroits où une erreur coûte cher et ne se voit pas tout de suite.

Un contrat, huit implémentations

Les huit SDK ne sont pas huit projets qui se ressemblent. Ils partagent une source de vérité unique — un manifeste — d'où sont générés :

  • la liste des opérations, leurs verbes, chemins, hôtes, paramètres et corps ;
  • quelles opérations sont publiques (et n'envoient donc pas votre clé) ;
  • la taxonomie d'erreurs et ses prédicats (isRetryable…) ;
  • les constantes de vérification des webhooks.

Reste écrit à la main, dans chaque langage : le transport, les modèles, et l'ergonomie. C'est la frontière utile — ce qui doit être identique est généré, ce qui doit être naturel est écrit. Un SDK qui ressemble à du code traduit est un SDK que personne n'adopte.

Pourquoi c'est important pour vous. Avant ce noyau, le SDK Dart connaissait cinq opérations et le TypeScript huit : markReady manquait au Dart, donc une application Flutter pouvait créer des envois que personne ne viendrait jamais chercher. Les deux envoyaient la clé d'API sur le suivi public, pendant que leur documentation affirmait le contraire. Une suite de conformance commune rejoue aujourd'hui les mêmes cas contre les huit — un SDK qui dérive ne compile plus.

Ce qui change d'un langage à l'autre

AspectComportement
Nommage des méthodesIdiomatique : createQuote en TS/Dart/Java, create_quote en Python/Ruby, CreateQuote en Go, CreateQuoteAsync en C#.
Casse des champsLe fil est toujours en snake_case. Les SDK typés (TS, Dart) exposent du camelCase et traduisent.
ErreursException dans tous les langages sauf Go, qui rend une *rapidy.Error.
ModèlesTS et Dart exposent des types (Quote, Shipment) ; les autres rendent des dictionnaires.

Appeler une opération non couverte par le sucre

Chaque SDK expose un appel générique par nom d'opération. C'est le même chemin que les méthodes nommées — elles y délèguent toutes — donc aucune ne peut diverger du contrat.

// TypeScript
const view = await rapidy.call('trackByCode', { trackingCode: 'A2C3D4E5F6' });
# Python
view = rapidy.call("trackByCode", trackingCode="A2C3D4E5F6")
// Go
view, err := client.Call(ctx, "trackByCode", rapidy.Params{"trackingCode": "A2C3D4E5F6"}, nil)

Contribuer ou auditer

Le code des huit SDK, le manifeste et la suite de conformance vivent dans le dépôt Rapidy, sous sdks/. Régénérer les contrats après une évolution du manifeste :

pnpm sdk:generate