Restful Routing – Ein Beispiel für eine Flask-API

WBOY
Freigeben: 2024-08-23 06:02:31
Original
630 Leute haben es durchsucht

Restful Routing - A Flask API Example

Restful Routing ist der Versuch, das Routing in allen verschiedenen Anwendungen konsistent zu machen. REST ist Representational State Transfer. Es verwendet HTTP auf konsistente, für Menschen lesbare und maschinenlesbare Weise.

Die Standards sind GET, POST, PATCH, PUT und DELETE.

Im Folgenden finden Sie ein Beispiel für einige restaurative Routen in einer Flask-API-Datenbank, um die Informationen von/nach vorne zu erhalten/zu übertragen und die erforderliche Aktion auszuführen.

Ein Beispiel für ein GET für Benutzer auf der Serverseite, das Flask verwendet, ist die Verwendung des folgenden Codes.

Zuerst müssen Sie auch diese Elemente importieren. Der Datenbankimport wird später für das DELETE-Beispiel verwendet.

from flask import request (*Used for POST and PATCH*)
from config import db, api, app 

from flask_restful import Resource
from models.user import User
Nach dem Login kopieren

Ihre Konfigurationsdatei sollte wie unten beschrieben eingerichtet sein, damit die Importe funktionieren.

 db = SQLAlchemy(app=app, metadata=metadata)
 api = Api(app=app)
Nach dem Login kopieren

Der GET-Code in der Benutzerroute:

 class UsersResource(Resource):
     def get(self):
        users = [user.to_dict() for user in User.query.all()]
        return users, 200

 api.add_resource(UsersResource, "/api/users", endpoint="users")
Nach dem Login kopieren

Um diesen Code aufzuschlüsseln.

Sie müssen eine Klasse für die Benutzerressource erstellen und die Ressource als Argument eingeben.

Als nächstes erstellen Sie eine Funktion für das Get. Die Funktion fragt die Benutzertabelle ab und erstellt dann eine Liste aller Benutzer, die sie zur Übertragung in Wörterbücher umwandeln, sodass sie auf der Webseite als JSON sichtbar sein können. Anschließend erhalten Sie die Liste sowie den Statuscode 200 zurück, dass die Anfrage erfolgreich war.

Zuletzt müssen Sie die Ressource erstellen. Benennen Sie die von Ihnen verwendete Ressource sowie den Pfad und den Endpunkt. /api wird vor dem Pfad hinzugefügt, damit die Hosting-Website die Front- und Backend-Route unterscheiden kann.

Für DELETE müssen Sie eine weitere Ressource für die Löschung eines einzelnen Benutzers erstellen. Siehe den Code unten:

 class UserResource(Resource):
     def delete(self, id):
         user= User.query.get(id)
         db.session.delete(user)
         db.session.commit()
         return {}, 204

 api.add_resource(UserResource, "/api/user/<int:id>", 
 endpoint="user")
Nach dem Login kopieren

Um näher zu erklären, was beim Löschen passiert und sich vom Abrufen unterscheidet, gibt es ein paar Dinge. Zuerst wird nur ein Benutzer gelöscht, sodass Sie eine neue Ressource erstellen müssen. Es ist ähnlich aufgebaut, aber nicht im Plural.

Dann erstellen Sie die Löschfunktion. Es sind zwei Argumente erforderlich, da Sie die vom Frontend gesendete ID übergeben müssen, um zu bestimmen, welcher Benutzer gelöscht werden soll. Anschließend verwenden Sie db session delete und commit, um die Datenbank zu aktualisieren. Danach erhalten Sie eine leere Antwort zurück, da es nichts zum Zurücksenden gibt, und den Status für eine Löschung (204).

Zuletzt müssen Sie die Ressource erstellen. Diesmal mit der UserResource. Der Pfad wird anders sein, um singulär zu sein und die ID zu haben, die an das Frontend übergeben wurde, und der Endpunkt ist ebenfalls singulär.

RESTful-Routing sorgt dafür, dass es beim Wechsel zwischen verschiedenen Anwendungen einen Standard gibt, dem jeder beim Backend-Routing folgen kann und der die standardisierten Pfade kennt. Darüber hinaus werden die Pfade dadurch sauberer und leichter lesbar.

Das obige ist der detaillierte Inhalt vonRestful Routing – Ein Beispiel für eine Flask-API. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage