Calling Flasche erholsame API Ressource Methoden

Ich schaffe eine API mit Flasche, die für eine mobile Plattform verwendet wird, aber ich möchte auch, dass die Anwendung selbst die API verdaut, um Webinhalte zu rendern. Ich frage mich, was der beste Weg ist, um API-Ressourcen-Methoden innerhalb von Flask zugreifen? Zum Beispiel, wenn ich die folgende Klasse als Ressource hinzugefügt habe:

class FooAPI(Resource): def __init__(self): # Do some things super(FooAPI, self).__init__() def post(self, id): #return something def get(self): #return something api = Api(app) api.add_resource(FooAPI, '/api/foo', endpoint = 'foo') 

Dann in einem Controller möchte ich:

 @app.route("/bar") def bar(): #Get return value from post() in FooAPI 

Wie bekomme ich den Rückgabewert von post () von FooAPI? Kann ich es irgendwie durch die api Variable machen? Oder muss ich eine Instanz von FooAPI im Controller erstellen? Es scheint, dass es eine einfache Möglichkeit gibt, dies zu tun, dass ich einfach nicht verstehe …

One Solution collect form web for “Calling Flasche erholsame API Ressource Methoden”

Der offensichtliche Weg für Ihre Anwendung, um die API zu verbrauchen ist, es wie jeder andere Client aufzurufen. Die Tatsache, dass die Anwendung als Server und ein Client zur gleichen Zeit handeln würde, spielt keine Rolle, der Client-Teil kann Anfragen in localhost und der Server-Teil wird sie auf die gleiche Weise erhalten, wie es externe Anfragen erhält. Um HTTP-Anfragen zu generieren, kannst du Anfragen oder urllib2 aus der Standardbibliothek verwenden.

Aber während die oben genannte Methode gut funktioniert, scheint es mir übertrieben zu sein. Meiner Meinung nach ist ein besserer Ansatz, um die gemeinsame Funktionalität Ihrer Anwendung in einer Weise, dass sowohl die reguläre Anwendung und die API aufrufen können. Zum Beispiel könnten Sie ein Paket namens FooLib , das alle freigegebenen Logiken implementiert, dann wird FooAPI ein dünner Wrapper um FooLib , und sowohl FooAPI als auch FooApp rufen FooLib an, um die Dinge zu erledigen.

  • Die Datenbankverbindung aus dem Anwendungskontext mit Flask-Restful erhalten
  • Wie ist der Request_loader von Flask-Login mit user_loader verknüpft?
  • Fehler beim Ausweitung von RegisterForm in Flaschensicherheit
  • Holen Sie sich die Abfrage Ausführungszeit in json Ausgabe
  • Flask-login AttributeError: 'User' Objekt hat kein Attribut 'is_active'
  • Vor dem Befüllen eines WTforms in den Kolben, mit Daten aus einem SQLAlchemy-Objekt
  • Flasche und flask_login - vermeiden Sie das Importieren von flask_login aus dem Hauptcode
  • Problem beim Import von LoginManager aus flask.ext.login
  • Kein Signal von Flask-Sicherheit
  • Flask Admin ModelAlle Felder zwischen CREATE und EDIT anzeigen
  • Anpassen (Override) Flask-Admin's Submit-Methode aus der Bearbeitungssicht
  • Python ist die beste Programmiersprache der Welt.