txrestapi.

Erleichterung der Erstellung von REST-API-Diensten in Twisted
Jetzt downloaden

txrestapi. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • MIT/X Consortium Lic...
  • Name des Herausgebers:
  • Ian McCracken
  • Website des Verlags:
  • http://code.google.com/u/ian.mccracken/

txrestapi. Stichworte


txrestapi. Beschreibung

Erschaffung der Erstellung von REST-API-Diensten in Twisted TXRESTAPI ist eine Bibliothek, die es leichter macht, Twisted Rest-API-Dienste zu erstellen. Normalerweise würde man Ressourcenunterklassen erstellen, die jedes Segment eines Pfads definieren; Dies ist das Implementierung und das Ergebnis der Ausgabe, die nicht sehr lesbar ist. TXRESTAPI bietet eine Apiresource-Klasse, die eine komplexe Zuordnung von Pfad zum Rückruf (A la django) mit einem lesbaren Dekorateur. ) und ein Webserver, der es serviert: >>> aus Twisted.Web.Server-Import-Site >>> aus Twisted.Internet-Importreaktor >>> Site = Site (API, TIMEOUT = NONE) und eine Funktion, um es einfach zu machen Wir machen Anfragen (nur für Erntezwecke; Normalerweise nutzen Sie natürlich Reactor.listentCP (Site, 8080)): >>> aus Twisted.Web.Server Importanfrage >>> Klasse Fakechannel (Objekt): ... Transport = Keine >>> def makerequest (Methode, Pfad): ... echt = Anfrage (Fakechannel (), None) ... req.prepath = req.postpath = none ... req.method = Methode; REQ.PATH = Pfad ... Ressource = Site.getchildWithDefault (Pfad, REQ) ... RETURN Ressource.Render.Render (REQ) Wir können jetzt Rückrufe für Pfade registrieren. Wir können verschiedene Rückrufe für verschiedene Methoden bereitstellen. Sie müssen Anfragen als das erste Argument akzeptieren: >>> def Get_Callback (Anforderung): Return 'Retron Callback' >>> API.Register ('Get', '^ / path / to / Methode', get_callback) >>> def post_callback (Anforderung): Return 'Post Callback' >>> API.Register ('post', '^ / path / to / Methode', post_callback), wenn wir einen Anruf tätigen, wird die Anforderung auf den richtigen Rückruf geleitet: >>> drucken makeerequest ('abrufen', '/ path / methode') abrufen >>> drucken makeRequest ('post', '/ path / methode') post callbackwe können mehrere Rückrufe für verschiedene Anforderungen registrieren. Der erste, der gewinnt: >>> def Standard_callback (Anforderung): ... RETURN 'Standard Callback' >>> API.Register ('Get', '^ ^ /. * $', default_callback) # übereinstimmt alles >> > drucken makeerequest ('get', '/ path / to / methode') abrufen >>> drucken makeRequest ('Get', '/ path / path / different / methode') Standard Callbackour Standard Callback wird jedoch nur übereinstimmen Anfragen erhalten. Für einen echten Standardabruf können wir entweder Callbacks für jede Methode individuell registrieren, oder wir können alle verwenden: >>> API.Register ('All', '^ /. * $', Default_callback) >>> drucken makeRequest (' Put ',' / path / to / methode ') Standardrückruf >>> drucken makerequest (' löschen ',' / path / methode ') Standard Rückruf >>> Drucken MakerEquest (' Get ',' / path / to / Methode ') Holen Sie sich Callbacklets nicht alle Referenzen auf den Standard-Rückruf API.Unregister (Callback = Default_Callback) URL-Argumente des Abstufers Akzeptieren Sie die Anforderung, sie haben Zugriff auf Daten- oder Abfrageargumente, aber wir können auch Argumente aus der URL aus der URL durch die Verwendung benutzerde Gruppen im regulären Ausdruck (ähnlich wie Django). Diese werden in den Rückruf als Keyword-Argumente übergeben: >>> def get_info (Anforderung, ID): ... Rückgabe 'Informationen für ID% S'% ID >>> API.Register ('Get', '/ (? P +) / info $ ', get_info) >>> drucken makeRequest (' erfahren ',' / orient / info ') Informationen für die ID AnyidBear Beachten Sie, dass alle Argumente als Saiten eingehen, so Code Sollte dementsprechend defensiv sein.Decorator SyntaxRegistrierung über die Register () : ...... @get ('^ / (? P +) / info') ... def get_info (selbst, Anforderung, ID): ... Rückgabe 'Info für id% s' % ID ...... @ put ('^ / (? p +) / update') ... @post ('^ / (? p +) / update'). .. DEF SET_INFO (SELBST, ANFRAGE, ID): ... RETURNE "EINSTELLUNG INFO FÜR ID% S"% ID ...... @ALL ('^ /') ... def Standard_View (Selbst, Anforderung) : ... wiedergeben "Ich stimme jeder URL" wieder. Beachten Sie auch, dass man die Dekorateursyntax verwenden kann, da man erwarten würde, ein Verfahren als Ziel für zwei URLs >>> Site = Site (MyResource (), Timeout = Keines) zu registrieren Anid / Info ') Info für ID Anid >>> Print MakerEquest (' Put ',' / Anid / Update ') Festlegen von Informationen für ID Anid >>> Print MakerEquest (' Beitrag ',' / Anid / Update ') Einstellen von Informationen Für ID Anid >>> Drucken Makerequest ('Löschen', '/ Anid / Löschen') Ich stimme mit einem beliebigen Urlcallback-Rückgabewerte überein. oder sogar andere APIs. Normalerweise möchten Sie jedoch höchstwahrscheinlich Saiten zurückgeben, die in einem Ressourcenobjekt umwickelt werden. Anforderungen: · Python


txrestapi. Zugehörige Software