API

API Authentifizierung

Informationen zur Authentifizierung für die CraftingStudio Pro API

Öffentliche API - Keine Authentifizierung erforderlich

Alle öffentlichen Endpoints sind frei zugänglich

Die aktuellen öffentlichen API-Endpoints von CraftingStudio Pro benötigen keine Authentifizierung. Du kannst alle Endpoints direkt ohne API-Key oder andere Credentials verwenden.

Öffentliche Endpoints:

  • GET /api/health
  • GET /api/plugins/[slug]/latest
  • POST /api/license/validate
Rate Limits

Um Missbrauch zu verhindern, haben wir Rate Limits implementiert. Diese gelten pro IP-Adresse:

Öffentliche API 100 Requests/Stunde

Alle öffentlichen Endpoints haben ein Limit von 100 Requests pro Stunde pro IP-Adresse.

Rate Limit Headers

Die API gibt Rate Limit-Informationen in den Response-Headern zurück:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1642233600
  • X-RateLimit-Limit: Maximale Anzahl von Requests pro Stunde
  • X-RateLimit-Remaining: Verbleibende Requests in der aktuellen Stunde
  • X-RateLimit-Reset: Unix-Timestamp, wann das Limit zurückgesetzt wird

Rate Limit überschritten

Wenn das Rate Limit überschritten wird, erhältst du einen 429 Too Many Requests Status Code:

HTTP/1.1 429 Too Many Requests
Content-Type: application/json

{
  "error": "Rate limit exceeded",
  "message": "Zu viele Requests. Bitte versuche es später erneut."
}
Best Practices

Caching

Um Rate Limits zu vermeiden und die Performance zu verbessern, solltest du API-Responses cachen:

  • Update-Checks: Cache für mindestens 1 Stunde
  • Health Checks: Cache für 1-5 Minuten
  • Lizenz-Validierung: Kein Caching (muss in Echtzeit validiert werden)

Error Handling

Implementiere robustes Error Handling für alle API-Calls:

try {
  const response = await fetch('https://craftingstudiopro.de/api/plugins/playerdatasync/latest');
  
  if (!response.ok) {
    if (response.status === 429) {
      // Rate limit überschritten
      console.log('Rate limit erreicht, später erneut versuchen');
      return;
    }
    throw new Error(`HTTP ${response.status}`);
  }
  
  const data = await response.json();
  // Verarbeite Daten...
} catch (error) {
  console.error('API-Fehler:', error);
}

User-Agent

Wir empfehlen, einen aussagekräftigen User-Agent Header zu setzen, damit wir deine Anwendung identifizieren können:

fetch('https://craftingstudiopro.de/api/plugins/playerdatasync/latest', {
  headers: {
    'User-Agent': 'MyPlugin/1.0.0 (Update Checker)'
  }
});
Zukünftige Authentifizierung

Für erweiterte API-Features

Für zukünftige erweiterte API-Features (z.B. Plugin-Upload, Statistiken-Abruf) wird möglicherweise Authentifizierung erforderlich sein. Diese wird dann über API-Keys erfolgen, die du in deinen Account-Einstellungen generieren kannst.

Die aktuellen öffentlichen Endpoints bleiben weiterhin ohne Authentifizierung verfügbar.

Weitere Informationen

Für detaillierte Informationen zu den einzelnen Endpoints, siehe die Endpoints-Dokumentation.