Vom Raspberry PI auf eine Rest API zugreifen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,
    ich möchte von meinem Raspberry Pi auf eine selbstgeschriebene REST API zugreifen. Im Moment habe ich 2 Ideen, ich welcher Sprache ich denn Client schreiben möchte:


    • C: Mit C kenne ich mich etwas aus, habe bis jetzt allerdings nur unter Windows ein paar kleinere Anwendungen geschrieben. Aber ob das am PI so einfacht ist? Es müsste zwar mit curl gehen, aber leider muss ich dann alles von Grund auf entwickeln, den eine Art REST-Lib nur in C habe ich leider nicht entdecken können.
    • Python: Von Python habe ich absolut NULL Ahnung. Allerdings sieht es relativ unkompliziert aus und es gibt einen haufen Frameworks/Libarys für um auf eine API zuzugreifen.


    Daher die Frage: Lohnt es sich, mal in Python reinzuschauen und gibt es eine Lib, die ihr mir empfehlen könnt? Oder habe ich einfach etwas übersehen und es gibt mit C doch eine Möglichkeit, die mir nicht bekannt ist?

    Gruß :)

  • mit Python ist das sehr sehr einfach gelöst.

    Was hast du denn mit den Daten vor, die du dir über die REST-Api beziehst?

    Um eine REST-Api mit Python aufzubauen gibt es das Modul Tornado (http://www.tornadoweb.org/en/stable/).

    Um die Daten zu empfangen einfach über urllib abfragen. Wenn du noch einpaar mehr Werte mit auf den Weg geben möchtest kannst du urllib2 nutzen oder das ganze mit Requests (http://docs.python-requests.org/en/latest/) machen.

    Python
    #!/usr/bin/python
    
    
    import urllib
    data = urllib.urlopen("http://sub.domain.url/REST/data.json").read()
  • Statt urrlib wuerde ich fuer alles HTTP-bezogene in Python das externe Modul "requests" empfehlen, da es deutlich bequemer ist. Unter anderem kuemmert es sich um so banale Dinge wie Cookies etc., die fuer Sessions manchmal notwendig sind.

    Und ein Grund, warum man REST ueberhaupt benutzt ist genau, dass man eben *KEINE* spezielle Bibliothek braucht. In C macht man HTTP mit Curl. Natuerlich gibt es Wrapper fuer beliebte APIs, wie zB Twitter etc. Aber da du deine eigene definierst, gibt es auch keinen Wrapper...

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!