fiat 0.0.1+4.4 copy "fiat: ^0.0.1+4.4" to clipboard
fiat: ^0.0.1+4.4 copied to clipboard

Fiat est un **wrapper conçu pour simplifier les appels API RESTful**

example/main.dart

import 'package:fiat/fiat_client.dart';
import 'package:fiat/fiat.dart';

void main() async {
  Fiat.init(FiatConfig(
    baseUrl: 'https://api.example.com',
    debugMode: true,
    showErrorSnackbarByDefault: true,
    defaultHeaders: {'Content-Type': 'application/json'},
    maxRetryAttempts: 3,
    retryPolicy: DefaultRetryPolicy(
      maxAttempts: 3,
      baseDelay: const Duration(seconds: 1),
      exponentialBackoff: true,
    ),
    connectTimeout: const Duration(seconds: 15),
    receiveTimeout: const Duration(seconds: 30),
    tokenGetter: () async => 'your_token_here',
    refreshTokenGetter: () async => 'your_refresh_token_here',
    onTokenUpdated: (newToken) async {
      print('Token mis à jour : $newToken');
    },
    onUnauthorized: () {
      print('Utilisateur non autorisé. Redirection vers la page de connexion.');
    },
    customErrorMessages: {
      404: 'Ressource non trouvée.',
      500: 'Erreur interne du serveur.',
    },
  ));

  await _getExample();
  await _postExample();
  await _putExample();
  await _deleteExample();
}

// Exemple GET
Future<void> _getExample() async {
  print('\n=== [GET] /posts/1 ===');

  final result = await Fiat.get<Map<String, dynamic>>(
    '/posts/1',
    fromJson: (data) => data as Map<String, dynamic>,
    onLoadingStart: () => print('GET -> Chargement...'),
    onLoadingEnd: () => print('GET -> Fini !'),
  );

  result.isSuccess ? print('POST -> Succès') : print('POST -> Échec');
  result.isNotFound
      ? print('POST -> Ressource non trouvée')
      : print('POST -> Autre erreur');
  result.isUnauthorized
      ? print('POST -> Non autorisé')
      : print('POST -> Autorisé');
  result.error != null
      ? print('POST -> Erreur: ${result.error}')
      : print('POST -> Pas d\'erreur');
}

// Exemple POST
Future<void> _postExample() async {
  print('\n=== [POST] /posts ===');

  final body = {
    "title": "Hello Fiat",
    "body": "Ceci est un test POST",
    "userId": 1,
  };

  final result = await Fiat.post<Map<String, dynamic>>(
    '/posts',
    data: body,
    fromJson: (data) => data as Map<String, dynamic>,
    onLoadingStart: () => print('POST -> Chargement...'),
    onLoadingEnd: () => print('POST -> Fini !'),
  );
  result.isSuccess ? print('POST -> Succès') : print('POST -> Échec');
  result.isNotFound
      ? print('POST -> Ressource non trouvée')
      : print('POST -> Autre erreur');
  result.isUnauthorized
      ? print('POST -> Non autorisé')
      : print('POST -> Autorisé');
  result.error != null
      ? print('POST -> Erreur: ${result.error}')
      : print('POST -> Pas d\'erreur');
}

// Exemple PUT
Future<void> _putExample() async {
  print('\n=== [PUT] /posts/1 ===');

  final update = {
    "id": 1,
    "title": "Titre mis à jour",
    "body": "Corps mis à jour",
    "userId": 1,
  };

  final result = await Fiat.put<Map<String, dynamic>>(
    '/posts/1',
    data: update,
    fromJson: (data) => data as Map<String, dynamic>,
    onLoadingStart: () => print('PUT -> Chargement...'),
    onLoadingEnd: () => print('PUT -> Fini !'),
  );

  result.isSuccess ? print('POST -> Succès') : print('POST -> Échec');
  result.isNotFound
      ? print('POST -> Ressource non trouvée')
      : print('POST -> Autre erreur');
  result.isUnauthorized
      ? print('POST -> Non autorisé')
      : print('POST -> Autorisé');
  result.error != null
      ? print('POST -> Erreur: ${result.error}')
      : print('POST -> Pas d\'erreur');
  ;
}

// Exemple DELETE
Future<void> _deleteExample() async {
  print('\n=== [DELETE] /posts/1 ===');

  final result = await Fiat.delete<Map<String, dynamic>>(
    '/posts/1',
    fromJson: (data) => data as Map<String, dynamic>? ?? {},
    onLoadingStart: () => print('DELETE -> Chargement...'),
    onLoadingEnd: () => print('DELETE -> Fini !'),
  );

  result.isSuccess ? print('POST -> Succès') : print('POST -> Échec');
  result.isNotFound
      ? print('POST -> Ressource non trouvée')
      : print('POST -> Autre erreur');
  result.isUnauthorized
      ? print('POST -> Non autorisé')
      : print('POST -> Autorisé');
  result.error != null
      ? print('POST -> Erreur: ${result.error}')
      : print('POST -> Pas d\'erreur');
}
2
likes
130
points
0
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Fiat est un **wrapper conçu pour simplifier les appels API RESTful**

License

MIT (license)

Dependencies

dio, flutter, get, get_storage, logger

More

Packages that depend on fiat