txrestapi

Het maken van de oprichting van rust-API-diensten in gedraaid
Download nu

txrestapi Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • MIT/X Consortium Lic...
  • Naam uitgever:
  • Ian McCracken
  • Uitgever website:
  • http://code.google.com/u/ian.mccracken/

txrestapi Tags


txrestapi Beschrijving

Vermindering van de creatie van rust-API-diensten in gedraaid TxRestapi is een bibliotheek die het gemakkelijker maakt om gedraaide rust-API-services te maken. Normaal gesproken zou men resource subclasses maken die elk segment van een pad definiëren; Dit is het cubeersome om te implementeren en resulteert in de output die niet erg leesbaar is. TXRESTAPI biedt een apireSource-klasse waardoor complexe kaart van het pad naar callback (A LA DJANGO) met een leesbare decorateur.basic URL Callback-registratieFIRST, Laten we een blote API-service creëren: >>> van txrestapi.resource Import Apiresource >>> API = APIRESOURCE ( ) En een webserver om het te dienen: >>> van twisted.web.server import site >>> van twisted.Internet importreactor >>> site = site (API, timeout = geen) en een functie om het gemakkelijk voor te doen VS om aanvragen te doen (alleen voor Doctest-doeleinden; normaal zou je natuurlijk reactor gebruiken.listentcp (site, 8080)): >>> van twisted.web.server importverzoek >>> Klasse FakeChannel (Object): ... Transport = Geen >>> DEF makeerequest (methode, pad): ... req = aanvraag (FakeChannel (), geen) ... req.Prepath = req.postpath = Geen ... req.method = methode; req.path = pad ... resource = site.getchildwithdefault (pad, req) ... Retour Resource.Render (req) We kunnen nu callbacks registreren voor paden waar we om geven. We kunnen verschillende callbacks bieden voor verschillende methoden; Ze moeten aanvragen als het eerste argument accepteren: >>> DEF GET_CALLBACK (verzoek): retourneren 'terugbellen ">>> API.REGISTER (' GET ',' ^ / PAD / TO / METHODE ', GET_CALLBACK) >>> DEF Post_Callback (aanvraag): Return 'Post Callback' >>> API.REGISTER ('Post', '^ / pad / naar / methode', post_callback), wanneer we bellen, wordt het verzoek naar de juiste callback gebeld: >>> Print MakeRequest ('Get', '/ Path / To / Method') Krijg terugbellen >>> Print MakeRequest ('Post', '/ Pad / To / Method') Post Callbackwe kunnen meerdere callbacks voor verschillende verzoeken registreren; De eerste die overeenkomt met wint: >>> Def standaard_callback (aanvraag): ... retour 'standaard callback' >>> api.register ('Get', '^ /. * $', standaard_callback) # komt overeen met alles >> > Print MakeRequest ('Get', '/ Path / To / Method') Krijg terugbellen >>> Print MakeEQUEST ('GET', '/ PAD / TO / VERSCHILLEND / METHODE') Standaard callbackour Standaard callback, maar ook overeenkomt met Krijg verzoeken. Voor een echte standaardcallback kunnen we callbacks voor elke methode afzonderlijk registreren, of we kunnen ALL gebruiken: >>> API.REGISTER ('ALL', '^ /. * $', Standaard_callback) >>> Print MakeEQUEST (' Put ',' / Path / To / Method ') Standaard terugbellen >>> Print MakeRequest (' Verwijderen ',' / Pad / To / Method ') Standaard terugbellen >>> Print MakeEQUEQUEST (' GET ',' / PAD / NAAR / Methode ') Krijg callbacklet's Unregister Alle verwijzingen naar de standaardcallback, zodat het niet interfereert met latere tests (standaard callbacks moeten natuurlijk altijd worden geregistreerd, dus ze worden niet gebeld voor andere callbacks): >>> API.UNREGISTER (Callback = Default_Callback) URL Argumentsince Callbacks accepteren verzoek, ze hebben toegang tot postgegevens of queryargumenten, maar we kunnen ook argumenten uit de URL trekken met behulp van benoemde groepen in de reguliere expressie (vergelijkbaar met django). Deze zullen worden doorgegeven in de callback als trefwoord Argumenten: >>> DEF GET_INFO (verzoek, ID): ... RETURN 'INFORMATIE VOOR ID% S'% ID >>> API.REGISTER ('GET', '/ (? P +) / info $ ', GET_INFO) >>> Print MakeEQUEST (' GET ',' / SEERID / INFO ') Informatie voor ID Syidebear in gedachten Alle argumenten zullen binnenkomen als strings, dus code Dienovereenkomstig moeten worden verdedigd. Decorator-syntaxisregistratie via de methode van het register () is enigszins ongemakkelijk, zodat decorateurs worden verstrekt waardoor het veel duidelijker is. >>> van txrestapi.methoden importeren krijgen, post, put, alles >>> Klasse Myresource (AFIRESOURCE) : ...... @get ('^ / (? P +) / info') ... DEF GET_INFO (Zelf, verzoek, ID): ... RETURN 'INFO VOOR ID% S' % ID ...... @Put ('^ / (? P +) / update') ... @Post ('^ / (? p +) / update'). .. DEF SET_INFO (Zelf, verzoek, ID): ... Return "Info instellen voor ID% S"% ID ...... @Alle ('^ /') ... Def standaard_view (self, aanvraag) : ... Return "I Match elke URL" Nogmaals, registraties komen bovenaan bij aan de onderkant, dus moeten methoden van het meest specifiek op het minst worden geschreven. Merk ook op dat men de decoratormyntaxis kan gebruiken zoals men zou verwachten een methode te registreren als het doelwit voor twee URL's >>> site = site (myresource (), timeout = geen) >>> print makequest ('Get', '/ Anid / Info ') Info voor ID Anid >>> Print MakeereQuest (' Put ',' / Anid / Update ') Info instellen voor ID Anid >>> Print MakeRequest (' Post ',' / Anid / Update ') Info instellen Voor ID-anid >>> Print MakeReQuest ('Verwijderen', '/ anid / Delete') Ik combineer elke URLCALLBACK-return-waarden die resource-objecten van een callback kunnen retourneren als u dat wenst, zodat u API's kunt hebben die u naar andere soorten middelen stuurt , of zelfs andere API's. Normaal gesproken wil je echter hoogstwaarschijnlijk strings retourneren, die in een resource-object voor het gemak worden gewikkeld. Vereisten: · Python


txrestapi Gerelateerde software

Permissionkit

Een zeer eenvoudig raamwerk voor het maken van toestemmingsobjecten en gebruik ze in autorisatiecontroles ...

50

Downloaden

Kolf-activa

Asset Management voor kolf, om CSS- en JavaScript-bestanden te comprimeren en samen te voegen ...

170

Downloaden

pypostal

Een interface voor het verzenden van echte (op papier gebaseerde) letters via API (PIXELLETTER) ...

148

Downloaden