Beiträge von tin

    Währungsrecher ... 3.3 oder so!

    Eine neue API-Beta ist erschienen! https://xc.mn-netz.de/api/index.php



    Hier eine KI-Made Dokumentation für die API

    Spoiler anzeigen

    Währungsrechner API Dokumentation

    Diese API ermöglicht die Abfrage von Währungsinformationen, die Umrechnung zwischen virtuellen Währungen, sowie das Abrufen aktueller und historischer Wechselkurse.

    Basis-URL: https://xc.mn-netz.de/api/index.php

    Alle Anfragen erfolgen über die GET-Methode und verwenden Query-Parameter zur Steuerung der Aktion und zur Übergabe von Werten.

    Authentifizierung

    Aktuell ist keine Authentifizierung erforderlich.

    Fehlerbehandlung

    Die API verwendet Standard-HTTP-Statuscodes zur Anzeige von Fehlern:

    • 400 Bad Request: Fehlende oder ungültige Parameter.
    • 404 Not Found: Angeforderte Ressource (z.B. Währungscode, Action) nicht gefunden.
    • 405 Method Not Allowed: Falsche HTTP-Methode verwendet (nur GET erlaubt).
    • 500 Internal Server Error: Ein serverseitiger Fehler ist aufgetreten (z.B. Problem mit der externen API).
    • 503 Service Unavailable: Datenbankfehler.

    Im Fehlerfall wird eine JSON-Antwort mit einem error-Schlüssel zurückgegeben:

    Code
    {
      "error": "Fehlermeldung hier..."
    }

    Endpunkte

    1. Währungen auflisten

    Ruft eine Liste aller unterstützten virtuellen Währungen mit Details ab.

    • Action: list
    • Methode: GET
    • URL: ?action=list

    Parameter:

    NameTypErforderlichBeschreibung
    actionstringJaMuss den Wert list haben

    Erfolgsantwort (Code 200 OK:(

    Ein JSON-Array von Währungsobjekten.

    Beispiel Währungsobjekt:

    Code
    {
        "name": "Vyrth",
        "short": "VYR",
        "symbol": "V",
        "country": "Verbundsrepublik Gurkistan",
        "breakdown": "1 Vyrth = 25 Korvyrth",
        "exchange_rate": 0.6734,
        "forex": "EUR"
    }
    • name: Vollständiger Name der Währung.
    • short: Eindeutiger 3-Buchstaben-Code (für API-Aufrufe verwenden).
    • symbol: Währungssymbol.
    • country: Zugehörige virtuelle Nation.
    • breakdown: Unterteilung der Währung.
    • exchange_rate: Der in der Datenbank hinterlegte Kurs relativ zur forex-Basiswährung.
    • forex: Die reale Währung (ISO-Code), an die diese virtuelle Währung gekoppelt ist.

    Beispiel Antwort:


    2. Betrag umrechnen

    Rechnet einen Betrag von einer virtuellen Quellwährung in eine virtuelle Zielwährung um.

    • Action: convert
    • Methode: GET
    • URL: ?action=convert&amount={betrag}&from={von_code}&to={zu_code}

    Parameter:

    NameTypErforderlichBeschreibung
    actionstringJaMuss den Wert convert haben
    amountfloatJaDer umzurechnende Betrag (muss positiv sein).
    fromstringJa3-Buchstaben-Code der Quellwährung (z.B. VYR).
    tostringJa3-Buchstaben-Code der Zielwährung (z.B. IRE).

    Erfolgsantwort (Code 200 OK:(

    Ein JSON-Objekt mit den Eingabeparametern und dem Ergebnis.

    Beispiel Antwort (?action=convert&amount=100&from=IRE&to=VYR:(

    Code
    {
        "action": "convert",
        "from": "IRE",
        "to": "VYR",
        "amount": 100.0,
        "result": 67.34000
    }
    • result: Der umgerechnete Betrag, gerundet auf 5 Nachkommastellen.

    3. Aktuelle Kurse abrufen

    Ruft die aktuellen Wechselkurse aller anderen Währungen relativ zu einer angegebenen Basiswährung ab.

    • Action: rates
    • Methode: GET
    • URL: ?action=rates&base={basis_code}

    Parameter:

    NameTypErforderlichBeschreibung
    actionstringJaMuss den Wert rates haben
    basestringJa3-Buchstaben-Code der Basiswährung (z.B. IRE).

    Erfolgsantwort (Code 200 OK:(

    Ein JSON-Objekt, das die Basiswährung und ein Objekt mit den Kursen enthält.

    Beispiel Antwort (?action=rates&base=IRE:(

    • base: Der Code der angefragten Basiswährung.
    • rates: Ein Objekt, bei dem die Schlüssel die Zielwährungscodes sind.
    • value: Der aktuelle Kurs (1 Einheit base = value Einheiten Zielwährung), gerundet auf 5 Nachkommastellen.
    • change: Prozentuale Veränderung ( Hinweis: Aktuell wird hier immer 0.00 zurückgegeben, da die Berechnung einer echten Veränderung im Backend noch nicht implementiert ist).
    • timestamp: Uhrzeit der Kursberechnung auf dem Server (Format HH:MM:SS).

    4. Historische Kurse abrufen

    Ruft tägliche historische Wechselkurse für ein Währungspaar über einen Zeitraum ab.

    • Action: historical
    • Methode: GET
    • URL: ?action=historical&from={von_code}&to={zu_code}&start={YYYY-MM-DD}&end={YYYY-MM-DD}

    Parameter:

    NameTypErforderlichBeschreibung
    actionstringJaMuss den Wert historical haben
    fromstringJa3-Buchstaben-Code der Quellwährung (z.B. VYR).
    tostringJa3-Buchstaben-Code der Zielwährung (z.B. IRE).
    startstringJaStartdatum im Format YYYY-MM-DD.
    endstringJaEnddatum im Format YYYY-MM-DD.

    Erfolgsantwort (Code 200 OK:(

    Ein JSON-Objekt mit den Anfrageparametern und einem Array von Tageskursen.

    Beispiel Antwort (?action=historical&from=VYR&to=IRE&start=2024-04-01&end=2024-04-03:(

    • rates: Ein Array von Objekten, jedes mit date und rate für diesen Tag.
    • rate: Der Wechselkurs (1 Einheit from = rate Einheiten to`), gerundet auf 5 Nachkommastellen.

    5. Test-Endpunkt

    Ein einfacher Endpunkt zum Testen der API-Erreichbarkeit.

    • Action: test
    • Methode: GET
    • URL: ?action=test

    Parameter:

    NameTypErforderlichBeschreibung
    actionstringJaMuss den Wert test haben

    Erfolgsantwort (Code 200 OK):

    Ein JSON-Objekt mit einer Testnachricht und Zeitstempel.

    Beispiel Antwort:

    Code
    {
        "message": "This is the test action!",
        "timestamp": "2025-04-22T20:22:00+02:00",
        "query_params": {
            "action": "test"
        }
    }

    Hallo,

    ich habe für Clausi meine alten Vorschläge für ein „ACPlus“ rausgekramt (also einer Erweiterung für das Woltlab'sche ACP). Darin befand sich ein Admin-Panel für den Account Switcher. Ich habe mal den unnötigen Code entfernt. ;)

    Erklärung und Vorschau

    So sieht es dann fertig aus; Wenn beispielsweise ID 1 zu ID 2 und ID 2 zu ID 1 eine Relation hat, sind beide in einer gemeinsamen Tabelle. Ansonsten sind sie getrennt.


    So sieht es dann aus, wenn man jemandem einen Account reinlegen will. :)



    Aktuelle Version 1.1.4: acplus1_1_4.zip| Installation in einen Subordner wie z.B. ACPlus | Admin-Gruppe und wcf-Tabllen-Präfix in config.php konfigurierbar. | Funktioniert mit WoltLab 5.4+ & 6+

    Veraltete Versionen:
    1.0.0: acplus.zip (Probleme: Keine Kompatibilität mit WSC 6)
    1.1.0: acplus1_1_0.zip (Probleme: Bei vielen Accounts Whitespace über Tabelle)
    1.1.3: acplus1_1_3.zip (Probleme: Sortieren)