2 Stimmen

Eine dynamische URL-Implementierung für eine RESTful-API in Google App Engine

Eine Client-Anwendung sendet eine Nachricht mit einer GET-Methode an http://server/user/USER_ID/history um eine JSON-Antwort zu erhalten, die den Nutzungsverlauf des Benutzers enthält. (z. B. eine Liste der angehörten Lieder, Käufe usw.)

Ich kann so weit gehen, dass ich mit http://server/user/USER_ID/ über den folgenden Ausschnitt:

application = webapp.WSGIApplication(
        [('/', BrowserTests),
         ('/user/([^/]+)?', UserHandler),
        ], debug=True)

Die ich in UserHandler über konsumiere:

user_id = str(urllib.unquote(resource))

Und so kann ich die Arbeit für http://server/user/USER_ID . Aber wie kann ich noch einen Schritt weiter gehen und verbrauchen Geschichte ?

Ich habe versucht, auf StackOverflow und in der Dokumentation nachzuschlagen, aber ich glaube, ich weiß nicht genau, was ich fragen muss, um eine Antwort zu erhalten.

4voto

systempuntoout Punkte 68725

Sie könnten etwa so vorgehen:

application = webapp.WSGIApplication([
    ('/user/([^/]+)/([^/]+)', UserHandler),
    ], debug=True)

class UserHandler(webapp.RequestHandler):
  def get(self, user_id, action_to_consume):
    self.response.out.write("Action %s" % action_to_consume)#Should print History

1voto

Jose M Vidal Punkte 8338

Einen zweiten Parameter hinzufügen

application = webapp.WSGIApplication(
        [('/', BrowserTests),
         ('/user/([^/]+)/([^/]+)$', UserHandler),
        ], debug=True)

class UserHandler(webapp.RequestHandler):
    def get(self, userid, history):

0voto

Nick Johnson Punkte 99799

Alternativ zu den Antworten von @Jose und @systempuntoout, wenn Sie für jede Aktion einen eigenen Handler benötigen:

application = webapp.WSGIApplication([
    ('/', BrowserTests),
    ('/user/([^/]+)', UserHandler),
    ('/user/([^/]+)/history', HistoryHandler),
], debug=True)

class UserHandler(webapp.RequestHandler):
  def get(self, userid):
    pass

class HistoryHandler(webapp.RequestHandler):
  def get(self, userid):
    pass

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X