Eigene API erstellen

  • Hallo zusammen,

    auf der Suche nach Anleitung wie ich eine 'einfache' API Schnittstelle auf meinem Server einrichte, bin ich leider nicht fündig geworden. Zwar gibt es zahlreiche Anleitungen und Tutorials, leider hat mir keine so wirklich weiter geholfen. Deshalb erhoffe ich mir hier die benötigte Hilfe - evtl. hat ja schon jmd von euch das selbe Problem gehabt:


    Zu meinem Projekt:

    Ich möchte auf meinem Server eine API Schnittstelle einrichten. Für's erste braucht diese nicht sonderbar umfangreich sein. Es reicht, wenn ich erstmal einen kurzen Text von einem fremden Server übermitteln kann.


    Meine "API Schnittstelle" mit Code aus dem Netz: (Auf meinem Server)

    PHP
    <?php
        $status = array('masterStatus' => 'ONLINE'); 
        echo json_encode($status);
    ?>

    Und der Code, von dem fremden Server:

    PHP
    <?php
        $rawState = file_get_contents('https://Adresse_zu_meiner.php'); 
        $status = json_decode($rawState, true); 
        echo "Master Server ist <b>".$status['masterStatus']."</b>";  
    ?>


    Wie zu erwarten, funktioniert dieser Dreizeiler nicht - wäre auch zu einfach gewesen.



    Bisher wäre ich einfach zufrieden, wenn ich auf die Anfrage von einem fremden Server eine Antwort übermitteln kann. Authentifizierung etc. ist erstmal nebensächlich.



    Hoffe auf eure Hilfe!

  • "Funktioniert nicht" ist eine denkbar schlechte Problembeschreibung.


    Richtig debuggen


    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
    3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
  • "Funktioniert nicht" ist eine denkbar schlechte Problembeschreibung.

    Da gebe ich dir allerdings recht. Sorry.

    Also die Seite zeigt "Master Server ist " an. Jedoch fehlt da dann die erwartete Antwort (hier hardcoded): "ONLINE".


    Es tritt also kein Fehler auf, aber eben auch nicht das, was gewünscht ist.

  • Habe nun ganz einfach und Spartanisch folgendes Script geschrieben:



    Server

    PHP: PHP Server
    <?php
        $name=$_POST['name'];
    ?>


    Client

    Code: HTML Client
    <style text="text/css">
            .hide { position:absolute; top:-1px; left:-1px; width:1px; height:1px; }
    </style>
    
    <iframe name="hiddenFrame" class="hide"></iframe>
    
    <form action="https://open.advintario.de/api.php" method="post" target="hiddenFrame">
      <input name="name" type="text">
      <input value="Senden" type="submit">
    </form>

    Funktioniert und tut erstmal das was es soll.


    Jetzt ist nur meine Frage: Wie sicher ist dieses Verfahren und welche Vorteile bieten andere Verfahren?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!