„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Restful Routing – Ein Beispiel für eine Flask-API

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

Veröffentlicht am 08.11.2024
Durchsuche:750

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 abzurufen/zu übertragen und die erforderliche Aktion auszuführen.

Ein Beispiel für ein GET für Benutzer auf der Serverseite mit flask 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

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

 db = SQLAlchemy(app=app, metadata=metadata)
 api = Api(app=app)

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")

Um diesen Code aufzuschlüsseln.

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

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/", 
 endpoint="user")

Um weiter 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 sauberer und leichter lesbar.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/spencer_adler_880da14d230/restful-routing-a-flask-api-example-5cpb?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3