REST-Service

  • Hey Ho Leute,


    mein aktuelles Projekt ist eine Zutrittskontrolle.
    Auch ist schon bereits ein Thread offen (http://www.forum-raspberrypi.d…en-bereich-schieben-danke)


    Warum ich jetzt hier nochmal einen eröffne ist, ich benötige Hilfe bei Teil der Kommunikation und das betrifft speziell den Bereich Websprachen von PI (Python) und Server (PHP).


    Kurz das Szenario:


    1. Ausweisnummer im QR-Code wird vom PI gelesen
    2. PI sendet die Ausweisnummer per REST-Service an Server
    3. Server nimmt Anfrage entgegen und prüft in der Datenbank ob Ausweisnummer vorhanden ist
    4. Server sendet "OK" an PI


    Nun benötige ich ein Beispiel das zur Lösung führt oder eine Lösung für den Schritt 3 und 4.


    Ich bin auch bereit eine kleine Belohnung zu zahlen, wenn mir jemand sein Beispiel im Teamspeak erklärt.

    Edited once, last by Mazsau ().

  • Du brauchst einen der dir ein Beispiel für ne php/sqlite|mysql abfrage in den Thread kopiert?
    [code=php]
    <?php
    $servername = "localhost";
    $username = "username";
    $password = "password";
    $dbname = "myDB";


    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
    }


    $sql = "SELECT id, firstname, lastname FROM MyGuests";
    $result = $conn->query($sql);


    if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
    }
    } else {
    echo "0 results";
    }
    $conn->close();
    ?>[/php]


    Wen du dann den return code auf 200 (http_response_code()) bei erfolgreichem Abfrageergebnis setzt sollte das dein python script auch mitkriegen. (so wie __deets__ da auch in dem anderen Thread vorgeschlagen hat). Ich hab nicht wirklich viel Ahnung von dem Web-Zeug, gefühlt sollte es so gehen.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Edited once, last by dbv ().

  • Sorry ich glaube ich habe mich falsch ausgedrückt.
    Ich meine ich brauche ein Beispiel für "3. Server nimmt Anfrage entgegen und prüft in der Datenbank ob Ausweisnummer vorhanden ist"


    Ich verstehe einfach die Funktionsweise noch nicht. Die PHP Seite auf dem Server muss doch aus dem Request der vom PI kommt den Wert (Ausweisnummer) herausfiltern und dann verarbeiten.

  • Sie bekommt die Parameter so wie *jede* HTTP-Seite: per GET oder POST Parameter, und ggf. per Pfad (das waere dann noch eine Spur RESTiger). Bau dir einfach eine Webseite, auf der ein Formular ist zur Eingabe deines QR-Codes. So wie in deinem tollen Tutorial. Und schick das Formular ab, werte den Parameter aus, ob der in deiner DB ist & passt und was auch immer du da tun willst, und reagiere entsprechend. ZB mit den freundlichen Worten "OK" oder "HAU AB".


    Und wenn du das laufen hast, rufst du dieselbe PHP-Seite mit "http://meinserver.com/meinpfad.php?qrcode=<wert>" per Python (oder Java, wo du jetzt drauf stehst) auf - und SIMSALABIMBUMBOM, du hast einen REST-Service-Call gemacht. Werte entweder den Text aus, oder eben wie schon mal erwaehnt (ist aber natürlich alles keine Hilfe, nur sinnlose Diskussion....) den HTTP-Returncode.


    Last but not least kann man als Sternchenaufgabe mit den Accept-Headern oder URL-Suffixen spielen, und zB einen JSON-Body zurückgeben.


  • Sie bekommt die Parameter so wie *jede* HTTP-Seite: per GET oder POST Parameter, und ggf. per Pfad (das waere dann noch eine Spur RESTiger). Bau dir einfach eine Webseite, auf der ein Formular ist zur Eingabe deines QR-Codes. So wie in deinem tollen Tutorial. Und schick das Formular ab, werte den Parameter aus, ob der in deiner DB ist & passt und was auch immer du da tun willst, und reagiere entsprechend. ZB mit den freundlichen Worten "OK" oder "HAU AB".


    Und wenn du das laufen hast, rufst du dieselbe PHP-Seite mit "http://meinserver.com/meinpfad.php?qrcode=<wert>" per Python (oder Java, wo du jetzt drauf stehst) auf - und SIMSALABIMBUMBOM, du hast einen REST-Service-Call gemacht. Werte entweder den Text aus, oder eben wie schon mal erwaehnt (ist aber natürlich alles keine Hilfe, nur sinnlose Diskussion....) den HTTP-Returncode.


    Last but not least kann man als Sternchenaufgabe mit den Accept-Headern oder URL-Suffixen spielen, und zB einen JSON-Body zurückgeben.


    Danke für die Erläuterung. Die Funktionsweise ist jetzt klar und habe nun auch mit Hilfe von einem Tutorial herausgefunden wie man es auch in die Praxis umsetzt.


    https://www.leaseweb.com/labs/…a-simple-rest-api-in-php/