Dart SDK
Le SDK Dart Applite (applite_ui) vous permet d’interagir avec l’API Applite depuis vos applications Flutter et Dart.
Version actuelle: 0.0.1 | Parité avec JS SDK: 100%
Installation
Ajouter la dépendance
Ajoutez le package à votre pubspec.yaml :
dependencies:
applite_ui:
git:
url: https://github.com/applite/dart-sdk.git
path: packages/dart_sdkOu si vous utilisez un chemin local :
dependencies:
applite_ui:
path: ../packages/dart_sdkInstaller les dépendances
flutter pub get
# ou
dart pub getInitialiser Hive (optionnel)
Si vous souhaitez utiliser le cache local :
import 'package:applite_ui/applite_ui.dart';
void main() async {
await initHive();
runApp(MyApp());
}Configuration
Créez une instance du client SDK :
import 'package:applite_ui/applite_ui.dart';
final applite = AppliteUI(
config: const AppliteUIConfig(
baseUrl: 'https://api.applite.ai',
headers: {'x-environment': 'production'},
),
);Options de configuration
| Option | Type | Description |
|---|---|---|
baseUrl | String? | URL de base de l’API (défaut: vide) |
headers | Map<String, String>? | Headers personnalisés |
dio | Dio? | Instance Dio personnalisée |
Authentification
Toutes les requêtes nécessitent deux paramètres :
apiKey: Votre clé API secrèteappId: L’identifiant de votre application
final response = await applite.app.customer.list(
appId: 'votre_app_id',
apiKey: 'votre_api_key',
);Structure du SDK
Le SDK est organisé en modules accessibles via applite.app :
applite.app
├── customer // Gestion des clients
├── info // Informations application
├── stats // Statistiques
├── finance // Solde et transactions
├── welcomeItem // Écrans d'accueil
├── store // Module e-commerce
│ ├── product
│ ├── category
│ ├── order
│ ├── seller
│ ├── badge
│ ├── collection
│ ├── discount
│ ├── option
│ ├── shipping
│ ├── tag
│ └── tax
└── multiService // Module services
├── company
├── service
├── agent
└── appointmentExemple rapide
Gestion des clients
// Lister les clients
final customers = await applite.app.customer.list(
appId: 'app_id',
apiKey: 'api_key',
);
print('${customers.data.length} clients trouvés');
// Authentifier un client
final auth = await applite.app.customer.auth(
appId: 'app_id',
apiKey: 'api_key',
fullname: 'Jean Dupont',
telephone: '+225070000000',
);
print('Client ID: ${auth.data.id}');
// Vérifier si un client existe
final check = await applite.app.customer.check(
appId: 'app_id',
apiKey: 'api_key',
telephone: '+225070000000',
);
if (check.data != null) {
print('Client trouvé: ${check.data!.fullname}');
}Gestion des produits
// Lister les produits
final products = await applite.app.store.product.list(
ListProductsParams(
apiKey: 'api_key',
appId: 'app_id',
),
);
// Créer un produit
final product = await applite.app.store.product.create(
CreateProductParams(
apiKey: 'api_key',
appId: 'app_id',
name: 'T-Shirt Premium',
sellerId: 'seller_id',
categoryId: 'category_id',
variants: [
ProductVariant(
price: 2500,
quantity: 100,
isDefault: true,
),
],
),
);Gestion des rendez-vous
// Créer un rendez-vous
final appointment = await applite.app.multiService.appointment.create(
CreateAppointmentParams(
apiKey: 'api_key',
appId: 'app_id',
serviceId: 'service_id',
date: '2024-01-25T14:00:00Z',
totalPrice: 1500,
),
);
// Mettre à jour le statut
await applite.app.multiService.appointment.updateStatus(
UpdateAppointmentStatusParams(
apiKey: 'api_key',
appId: 'app_id',
id: appointment.data.id,
status: AppointmentStatus.confirmed,
),
);Gestion des erreurs
Toutes les méthodes peuvent lever une ApiException en cas d’erreur :
try {
final response = await applite.app.customer.get(
appId: 'app_id',
apiKey: 'api_key',
id: 'customer_id',
);
print('Client: ${response.data?.fullname}');
} on ApiException catch (e) {
print('Erreur: ${e.message}');
print('Code HTTP: ${e.statusCode}');
}Structure de ApiException
| Propriété | Type | Description |
|---|---|---|
message | String | Message d’erreur |
statusCode | int? | Code HTTP |
cause | DioException? | Exception Dio sous-jacente |
Types et énumérations
Le SDK exporte tous les types nécessaires :
import 'package:applite_ui/applite_ui.dart';
// Énumérations
PlateformType.store
PlateformType.multiService
Sexe.M
Sexe.F
AppointmentStatus.pending
AppointmentStatus.confirmed
ProductStatus.ACTIVE
ProductStatus.DRAFT
// Types de paramètres
ApiKeyParams
AppScopedParams
ListProductsParams
CreateAppointmentParams
// ... etcComparaison avec le JS SDK
Le Dart SDK maintient une parité complète avec le JS SDK :
Dart
final applite = AppliteUI(
config: AppliteUIConfig(
baseUrl: 'https://api.applite.ai',
),
);
final response = await applite.app.customer.auth(
appId: 'app_id',
apiKey: 'api_key',
fullname: 'Jean Dupont',
telephone: '+225070000000',
);Modules
Explorez la documentation détaillée de chaque module :
- Store - E-commerce (produits, commandes, vendeurs…)
- Multi-Service - Services et rendez-vous
Last updated on