Maison  >  Article  >  développement back-end  >  Routage reposant - Un exemple d'API Flask

Routage reposant - Un exemple d'API Flask

WBOY
WBOYoriginal
2024-08-23 06:02:31627parcourir

Restful Routing - A Flask API Example

Le routage reposant vise à rendre le routage cohérent dans toutes les différentes applications. REST est un transfert d'état représentatif. Il utilise HTTP de manière cohérente, lisible par l'homme et par la machine.

Les standards sont GET, POST, PATCH, PUT et DELETE.

Vous trouverez ci-dessous un exemple de quelques itinéraires reposants dans une base de données API flask pour obtenir/donner les informations depuis/vers l'avant et effectuer l'action requise.

Un exemple de GET pour les utilisateurs côté serveur utilisant flask utilise le code ci-dessous.

Vous devrez d’abord également importer ces éléments. L'importation de base de données sera utilisée plus tard pour l'exemple DELETE.

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

Votre fichier de configuration doit être configuré comme ci-dessous pour que les importations fonctionnent.

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

Le code GET dans la route Utilisateur :

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

Pour décomposer ce code.

Vous devrez créer une classe pour la ressource utilisateurs et mettre la ressource comme argument.

Créez ensuite une fonction pour le get. La fonction interrogera la table User puis créera une liste de tous les utilisateurs en les convertissant en dictionnaires pour le transfert afin qu'ils puissent être visibles sur la page Web au format JSON. Ensuite, vous renvoyez la liste ainsi qu'un code d'état de 200 indiquant que la demande a réussi.

Enfin, vous devrez créer la ressource. Nommez la ressource que vous utilisez ainsi que le chemin et le point de terminaison. /api est ajouté devant le chemin afin que le site Web d'hébergement puisse discerner l'itinéraire front-end et backend.

Pour DELETE, vous devrez créer une autre ressource pour une suppression d'un seul utilisateur. Voir le code ci-dessous :

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

Pour expliquer davantage ce qui se passe lors de la suppression et qui est différent de l'obtention, il y a quelques éléments. Tout d’abord, il s’agit simplement de supprimer un utilisateur, vous devrez donc créer une nouvelle ressource. Il est configuré de la même manière mais pas au pluriel.

Ensuite, vous créez la fonction de suppression. Il aura besoin de deux arguments car vous devez transmettre l'identifiant envoyé depuis le front-end pour déterminer quel utilisateur supprimer. Ensuite, vous utiliserez db session delete et commit pour mettre à jour la base de données. Après cela, vous renvoyez une réponse vide car il n'y a rien à renvoyer et le statut de suppression (204).

Enfin, vous devez créer la ressource. Cette fois, en utilisant UserResource. Le chemin sera différent pour être singulier et avoir l’identifiant qui a été transmis au front-end et le point final est également singulier.

Le routage RESTful fait en sorte que lors du basculement entre différentes applications, il existe une norme que tout le monde peut suivre pour le routage backend et connaître les chemins standardisés. De plus, cela rend les chemins plus propres et plus faciles à lire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn