2010-03-28 12 views
10

के साथ बाकी वेब सेवा मैं ऐप इंजन पर एक आरईएसटी वेब सेवा बनाना चाहता हूं। वर्तमान में मैं इस है:ऐप इंजन और वेबएप

from google.appengine.ext import webapp 
from google.appengine.ext.webapp import util 

class UsersHandler(webapp.RequestHandler): 

def get(self, name): 
    self.response.out.write('Hello '+ name+'!') 

def main(): 
util.run_wsgi_app(application) 

#Map url like /rest/users/johnsmith 
application = webapp.WSGIApplication([(r'/rest/users/(.*)',UsersHandler)]          
            debug=True) 
if __name__ == '__main__': 
    main() 

और जब पथ/बाकी/उन पर पहुंचने पर मैं उदाहरण के लिए अपने सभी उपयोगकर्ताओं पुनर्प्राप्त करना चाहते हैं। मुझे कल्पना है कि मैं इसे एक और हैंडलर बनाकर कर सकता हूं, लेकिन मैं जानना चाहता हूं कि इस हैंडलर के अंदर ऐसा करना संभव है या नहीं।

+0

[Google App Engine और Python के साथ एक आरईएसटी सेवा कैसे बनाएं?] के संभावित डुप्लिकेट? (Http://stackoverflow.com/questions/1788041/how-to-create-a-rest-service-with-google -एप-इंजन-और-पायथन) – Oliver

उत्तर

14

ज़रूर, आप कर सकते हैं - अपने हैंडलर के get विधि

def get(self, name=None): 
    if name is None: 
     """deal with the /rest/users case""" 
    else: 
     # deal with the /rest/users/(.*) case 
     self.response.out.write('Hello '+ name+'!') 

को बदल सकते हैं और

application = webapp.WSGIApplication([(r'/rest/users/(.*)', UsersHandler), 
             (r'/rest/users', UsersHandler)]          
            debug=True) 

करने के लिए अपने आवेदन दूसरे शब्दों में, सभी URL प्रतिमानों आप के लिए यह चाहते करने के लिए अपने हैंडलर के नक्शे हैंडल करें, और सुनिश्चित करें कि हैंडलर की get विधि आसानी से उनके बीच अंतर कर सकती है (आमतौर पर इसके तर्कों के माध्यम से)।

+1

आप दो हैंडलर का भी उपयोग कर सकते हैं - एक "/ rest/users /" और "/rest/users/(.+" के लिए एक "। –

+0

@ निक, यकीन है, लेकिन ओपी जानता है कि, जैसा कि वह कहता है, "मैं इसे एक और हैंडलर बनाकर कर सकता हूं, लेकिन मैं जानना चाहता हूं कि इस हैंडलर के अंदर ऐसा करना संभव है" - इसलिए मैंने दोहराना नहीं किया वह बस कहा था ;-)। –

+0

क्षमा करें, मुझे वह बिट याद आया। :) –

संबंधित मुद्दे