gsd_restapi 0.1.5 copy "gsd_restapi: ^0.1.5" to clipboard
gsd_restapi: ^0.1.5 copied to clipboard

retracted

This package provides comprehensive REST API functionality for Flutter applications with automatic session management, encryption, various HTTP methods, and Firebase Performance Monitoring. It enables [...]

GSD-RestAPI #

Dieses Paket bietet umfassende REST-API-Funktionen für Flutter-Anwendungen mit automatischer Session-Verwaltung, Verschlüsselung, verschiedenen HTTP-Methoden und Firebase Performance Monitoring. Es ermöglicht die strukturierte Kommunikation mit REST-APIs sowohl für Debug-Zwecke als auch für die Produktionsüberwachung.

Features #

  • Vollständige HTTP-Unterstützung: GET, POST, PUT, PATCH, DELETE Methoden
  • Automatische Session-Verwaltung: Sessions werden automatisch erneuert bei Ablauf
  • Sichere Authentifizierung: Login mit MD5-Hash und RSA/AES-Verschlüsselung
  • Device-Management: Geräte-spezifische Authentifizierung und Verwaltung
  • Firebase Performance Monitoring: Integrierte Performance-Überwachung
  • SSL-Fehlerbehandlung: Konfigurierbare SSL-Zertifikatsprüfung
  • Timeout-Konfiguration: Separate Timeouts für Verbindung und Response
  • Mail-Funktionen: E-Mail erstellen, bearbeiten und versenden
  • Termin-Management: Kalender-Funktionen mit Serien-Unterstützung
  • Datei-Upload/Download: Umfassende Datei-Operationen
  • Error-Handling: Spezifische Exceptions für verschiedene Fehlertypen
  • Web-Kompatibilität: Funktioniert sowohl auf mobilen Plattformen als auch im Web

Installation #

Fügen Sie das Paket in Ihrer pubspec.yaml hinzu:

dependencies:
  gsd_restapi: ^0.1.1

Führen Sie anschließend flutter pub get aus, um das Paket zu installieren.

Nutzung #

RestAPI Manager initialisieren #

Erstellen Sie eine Instanz des RestApiManagers mit den erforderlichen Parametern:

import 'package:gsd_restapi/gsd_restapi.dart';

final RestApiDOCUframeManager apiManager = RestApiDOCUframeManager(
  'GSD-DFApp',                    // App Key
  'GSDAdmin',                     // Username
  ['GSD-RestApi', 'GSD-DFApp'],  // App Names
  'https://127.0.0.1:8080',      // Server URL
  'dfapp',                       // Database Alias
  perPageCount: 50,
  allowSslError: false,
);

Benutzer anmelden #

try {
  // Passwort als MD5-Hash setzen
  apiManager.setPassword('098f6bcd4621d373cade4e832627b4f6'); // MD5 für "test"
  
  // Login durchführen
  RestApiLoginResponse loginResponse = await apiManager.login(
    '098f6bcd4621d373cade4e832627b4f6'
  );
  
  if (loginResponse.isOk) {
    print('Erfolgreich angemeldet. Session ID: ${apiManager.sessionId}');
  }
} catch (e) {
  print('Login fehlgeschlagen: $e');
}

Session-Überwachung #

// Session-Status prüfen
try {
  RestApiResponse sessionCheck = await apiManager.checkSession();
  print('Session ist aktiv: ${sessionCheck.isOk}');
} catch (e) {
  print('Session ungültig: $e');
}

// Service-Status prüfen
RestApiCheckServiceResponse serviceCheck = await apiManager.checkService();
print('Service verfügbar: ${serviceCheck.isOk}');

Event-Handling #

// Session-Änderungen überwachen
apiManager.sessionIdChangedEvent.subscribe((args) {
  print('Session ID hat sich geändert');
});

// Authentifizierungsfehler überwachen
apiManager.userAndPassWrongEvent.subscribe((args) {
  print('Benutzername oder Passwort falsch');
});

// Lizenzfehler überwachen
apiManager.licenseWrongEvent.subscribe((args) {
  print('Lizenzproblem erkannt');
});

HTTP-Methoden #

Das Paket unterstützt alle gängigen HTTP-Methoden:

  • GET: Daten abrufen
  • POST: Neue Daten erstellen
  • PUT: Daten vollständig ersetzen
  • PATCH: Daten teilweise aktualisieren
  • DELETE: Daten löschen

Sicherheit und Verschlüsselung #

  • RSA-Verschlüsselung: Sichere Übertragung von Login-Daten
  • AES-Verschlüsselung: Verschlüsselte Kommunikation für sensible Daten
  • Session-Management: Automatische Erneuerung abgelaufener Sessions
  • SSL-Unterstützung: Konfigurierbare SSL-Zertifikatsprüfung
  • MD5-Hash: Passwort-Hashing für sichere Authentifizierung

Error-Handling #

Das Paket bietet spezifische Exception-Typen:

  • SessionInvalidException: Session ist ungültig oder abgelaufen
  • TokenOrSessionIsMissingException: Token oder Session fehlt
  • UserAndPassWrongException: Falsche Anmeldedaten
  • LicenseException: Lizenzprobleme
  • HttpRequestException: HTTP-spezifische Fehler
  • SecurityException: Sicherheitsprobleme
  • WebServiceException: Webservice-Fehler

Performance-Monitoring #

import 'package:firebase_performance/firebase_performance.dart';

// Firebase Performance Monitoring aktivieren
FirebasePerformance performance = FirebasePerformance.instance;

RestApiDOCUframeManager apiManager = RestApiDOCUframeManager(
  // ... andere Parameter
  firebasePerformance: performance,
);

Konfiguration #

Timeout-Einstellungen #

// Timeouts werden intern verwaltet:
// - Connection Timeout: 5 Sekunden
// - Response Timeout: 10 Minuten

SSL-Konfiguration #

RestApiDOCUframeManager apiManager = RestApiDOCUframeManager(
  // ... andere Parameter
  allowSslError: true,  // SSL-Fehler ignorieren
);

API-Design #

Das Paket folgt dem Prinzip der sauberen Architektur:

  • RestApiManager - Hauptklasse für alle API-Operationen
  • RestApiResponse - Standardisierte Response-Behandlung
  • RestApiDevice - Geräte-Management
  • HttpMethod - Enum für HTTP-Methoden
  • _http() - Private HTTP-Implementierung (nicht zugänglich)
  • _performRequest() - Interne Request-Verarbeitung (nicht zugänglich)

Hinweise #

  • Automatische Session-Erneuerung: Abgelaufene Sessions werden automatisch erneuert
  • Performance: Requests werden mit Firebase Performance Monitoring überwacht
  • Web-Unterstützung: Plattformspezifische HTTP-Client-Implementierung
  • Concurrent Requests: Schutz vor doppelten Login-Requests
  • Request Caching: Pending Requests werden gecacht um Duplikate zu vermeiden
  • Memory Management: HTTP-Clients werden automatisch geschlossen

Dieses Paket ermöglicht die professionelle REST-API-Kommunikation in Ihrer Flutter-Anwendung und bietet umfassende Funktionen für Authentifizierung, Datenmanagement und Performance-Überwachung bei gleichzeitig sauberer und sicherer API.

0
likes
0
points
1.17k
downloads

Publisher

verified publishergsd-software.com

Weekly Downloads

This package provides comprehensive REST API functionality for Flutter applications with automatic session management, encryption, various HTTP methods, and Firebase Performance Monitoring. It enables structured communication with REST APIs for both debugging purposes and production monitoring.

Homepage
Repository (GitHub)
View/report issues

Topics

#rest-api #http-client #session-management #encryption #authentication

Documentation

Documentation

License

unknown (license)

Dependencies

collection, crypto, encrypt, event, file_picker, firebase_performance, flutter, gsd_encryption, http, iso8601_duration, pointycastle

More

Packages that depend on gsd_restapi