2009-11-24 10 views
6

Erişilen URL aracılığıyla istek alan bir RESTFUL web hizmeti oluşturmak ve daha sonra ilgili istemci için uygun belgeyi döndürmek istiyorum. Örneğin, bir hava durumu uygulaması olsaydı ve Atlanta için bir web tarayıcısı aracılığıyla hava almak istediğimde, http://weatherapp.appspot.com/temperature/Atlanta'a erişirdim ve bir HTML belgesini Atlanta'nın bilgileriyle birlikte döndürürdü. Ben başka bir web sitesi ekran kazıma yoluyla sarmak için çalışıyorum gibi bir veritabanına bağlayan bir şey istemiyorum. Herhangi birinden, URL’den argümanların nasıl alınacağı konusunda herhangi bir örnek var mı? Webapp çerçevesini kullanmaGoogle App Engine ve Python ile bir REST hizmeti nasıl yapılır?

cevap

15

, sen normal ifade gruplarını yakalamak ve bu gibi işleyicisi bunları geçirebilirsiniz:

class WeatherHandler(webapp.RequestHandler): 
    def get(self, location): 
    # Do something for location 

application = webapp.WSGIApplication([ 
    ('/temperature/(.*)', WeatherHandler), 
]) 

def main(): 
    run_wsgi_app(application) 

if __name__ == "__main__": 
    main() 

normal ifadede herhangi parantezli gruplar

toplanmış ve get/mesaja pozisyonel argümanlar olarak geçirilir İşleyicinizde/etc yöntemleri.

+0

Bu iyi çalışıyor. Teşekkürler! – James

+1

URL'leri eşlemek için app.yaml dosyasını kullanamazdınız mı? –

+1

@Chris app.yaml, altyapının, isteği yönlendiren komut dosyasına bildirir. Talepler CGI kullanılarak yapıldığından, orada alt grupları yakalamanın bir yolu yoktur. Yukarıdaki gibi, uygun işleyiciye istekleri yönlendirmek için tek tek komut dosyasına kalmış durumda. –