2016-03-21 5 views
0

Kann jemand eine Idee darüber haben, wie man Daten aus der REST-API in das RPi einbaut, das in Python geschrieben wird? Gibt es eine Möglichkeit, einige Befehle vom Remote-Server an das RPi zu senden? Jede Hilfe dazu wäre willkommen.Wie liest man Objekte aus der REST-API mit Python?

+0

Dies ist viel zu vage. Wenn es sich um eine REST-API handelt, können Sie sie per Definition per HTTP abfragen. Was genau ist deine Frage? –

+0

@DanielRoseman Eigentlich bin ich nicht vom Programmierhintergrund. Aber ich möchte wissen, ob der Server/die Cloud, auf dem REST API ausgeführt wird, in der Lage ist, einen beliebigen Befehl an mein RPi zu senden? Sie können sich vorstellen, wie Can Global Server einen Befehl an die verschiedenen Benutzer sendet? Wenn ja, wie? – abhi1610

Antwort

1

einfach die Antwort auf den Umfang der Frage zu halten. Auf Rest-API kann unter Verwendung von http Anfragen zugegriffen werden. Die Python-Standard-Bibliothek hat eine http-Client-Bibliothek und auch gibt es eine Vielzahl von Bibliotheken aus there, die Funktionen einer http client bieten, ich persönlich mag requests.

so im Grunde installieren requests und dann.

r = requests.get(url) 

data = r.json() # as its a rest api you can directly access the json object 

print(data) 
+0

Vielen Dank für die Antwort. Wie es scheint, dient der Code zum Lesen von der REST-API. Kann es umgekehrt sein, wie könnte REST API das Objekt an meinen Raspberry Pi (Python) senden? – abhi1610

+0

yeah 'request.post' Methode kann dafür verwendet werden, aber bitte zuerst würde ich empfehlen, ein wenig lesen auf' http' und 'rest'. Akzeptiere auch die Antwort, wenn du glaubst, es ist deine Frage :-) –

+0

Es beantwortet meine Frage etwas, aber nicht vollständig. Ab sofort kann ich mit 'requests.get (url)' lesen. Ich kann sogar Daten an die URL 'posten'. Aber, wenn ich Befehle von URL zu meinem Host-Rechner senden möchte, wie kann es getan werden? – abhi1610

1

RPi verwendet Rest API, so können Sie Urlib in Python verwenden.

http://<ip of raspi>:3000/<pin> 

source

Beispiel:

from urllib.request import Request, urlopen 
    q = Request(url_with_get_parameters) 
    q.add_header('some_header_info', 'value') 
    q.add_header('Content-type', 'application/json') 
    response = urlopen(q).read()