SDK Dart – SoftAfrik Push API
Client Dart pour serveurs et micro-services.
1. Installation
Ajoutez http dans votre pubspec.yaml :
dependencies: http: ^1.2.0
Structure recommandée
/your-dart-project
lib/
softafrik_push_client.dart
example.dart
2. SDK Dart – softafrik_push_client.dart
import 'dart:convert';
import 'package:http/http.dart' as http;
class SoftAfrikPushClient {
final String apiKey;
final String baseUrl;
SoftAfrikPushClient(
this.apiKey, {
this.baseUrl = "https://softafrik-push-api.brillanciel.com",
});
Future _post(String path, Map payload) async {
final url = Uri.parse("$baseUrl$path");
final res = await http.post(
url,
headers: {
"X-API-KEY": apiKey,
"Content-Type": "application/json",
},
body: jsonEncode(payload),
);
return jsonDecode(res.body);
}
Future registerUser(String externalUserRef, {Map? meta}) {
return _post("/api/users/register", {
"external_user_ref": externalUserRef,
"meta": meta ?? {}
});
}
Future registerDevice(
String puid,
String appName,
String platform,
String deviceToken, {
String? deviceUid,
String? lang,
String? country,
}) {
final payload = {
"puid": puid,
"app_name": appName,
"platform": platform,
"device_token": deviceToken
};
if (deviceUid != null) payload["device_uid"] = deviceUid;
if (lang != null) payload["lang"] = lang;
if (country != null) payload["country"] = country;
return _post("/api/devices/register", payload);
}
Future pushToUser(String puid, String title, String body,
{Map? data}) {
return _post("/api/push/to-user", {
"puid": puid,
"title": title,
"body": body,
"data": data ?? {}
});
}
}
3. Exemple d’utilisation
import 'softafrik_push_client.dart';
void main() async {
final client = SoftAfrikPushClient("VOTRE_API_KEY");
final user = await client.registerUser(
"user_123",
meta: {"full_name": "John Doe"},
);
print(user);
final puid = user["puid"];
final resp = await client.pushToUser(
puid,
"Transfert reçu",
"Vous avez reçu 20 000 XOF",
data: {"transaction_id": 9932},
);
print(resp);
}
Endpoints
POST /api/users/registerPOST /api/devices/registerPOST /api/push/to-userPOST /api/push/to-devicePOST /api/push/broadcast
final client = SoftAfrikPushClient("API_KEY");
final r = await client.pushToUser("sa_10_xx", "Ping", "Hello");
print(r);