Meilleures pratiques pour le développement d'API Python de commerce électronique

1. Introduction

Lorsque vous vous enregistrez dans l'un des restaurants les plus méditerranéens de Pékin, lorsque nous commandons de la nourriture au restaurant, le serveur nous donne un menu, qui répertorie tous les plats et boissons disponibles. Nous pouvions choisir la nourriture et les boissons que nous voulions sur le menu et dire au serveur notre choix. Les serveurs préparent et servent la nourriture et les boissons selon nos choix. C'est comme si les applications utilisaient des interfaces pour interagir avec d'autres applications. En programmation informatique, une interface est comme un menu qui répertorie différentes fonctions ou services. Les applications peuvent utiliser l'interface pour obtenir les données requises ou effectuer l'opération souhaitée. Tout comme lorsque nous commandons de la nourriture dans un restaurant, nous choisissons la nourriture et la boisson que nous voulons, l'application peut également choisir le service ou la fonction dont nous avons besoin depuis l'interface et effectuer l'opération correspondante.

Lorsque nous utilisons le programme WeChat Mini, nous utilisons en fait l'interface du programme WeChat Mini pour obtenir les données requises et effectuer les opérations requises. Par exemple, lorsque nous vérifions les prévisions météorologiques dans l'applet WeChat, l'applet utilisera l'API de prévisions météorologiques pour obtenir les dernières informations météorologiques et les afficher dans l'applet.

 

 1. Qu'est-ce qu'une API

API, le nom complet est Application Programming Interface, c'est-à-dire interface de programmation d'application. C'est un ensemble de protocoles, d'interfaces et d'ensembles d'outils qui définissent l'interaction entre les composants logiciels. Il permet aux systèmes logiciels de communiquer et d'interagir les uns avec les autres, afin que les développeurs puissent utiliser les fonctions et les données d'autres applications dans leurs propres applications, Améliorer l'efficacité du développement et augmenter les fonctions du programme. En termes simples, l'API est un pont pour l'interaction entre deux logiciels.

 2. Pourquoi les API sont nécessaires

Meilleure gestion et contrôle des données : les API peuvent implémenter un contrôle d'accès, permettant uniquement aux utilisateurs autorisés ou aux APP d'accéder. Cryptage des données, utilisez le protocole HTTPS pour crypter la transmission des données afin d'empêcher des tiers de voler des données ou de mener des attaques malveillantes. Surveillez les temps d'accès aux données et auditez l'accès pour éviter les abus. Ces fonctionnalités de sécurité peuvent aider les développeurs et les entreprises à protéger les données contre les menaces et les attaques potentielles, et à améliorer l'intégrité et la confidentialité des données.

Développez et déployez des applications plus rapidement : en utilisant des API, les développeurs peuvent tirer parti du code et des outils existants pour accélérer le processus de développement et de déploiement des applications. Cela permet aux développeurs de se concentrer sur la logique métier de base de l'application sans avoir à passer beaucoup de temps à implémenter des fonctionnalités de routine. Par exemple, les API d'Alipay et de WeChat Pay, grâce auxquelles les commerçants peuvent intégrer Alipay et WeChat Pay dans leurs sites de commerce électronique. Cela permet aux commerçants d'utiliser directement la fonction de paiement sans avoir à se soucier des détails de la mise en œuvre de la fonction.

Mieux répondre aux besoins des clients : grâce aux API, les développeurs peuvent répondre rapidement aux besoins des clients et offrir une meilleure expérience utilisateur. L'API peut fournir aux clients plus de fonctions et de données pour répondre à leurs besoins.

 3. Étapes de base du développement d'API

Déterminer les exigences et les fonctionnalités de l'API eCommerce : entrées, sorties, types de requêtes, etc.

Choisissez un langage et un framework de programmation : choisissez un langage et un framework de programmation appropriés en fonction de vos besoins. Les langages couramment utilisés incluent Python, Java, C #, etc., et les frameworks couramment utilisés incluent Flask, Django, Express, etc.

Structure des données : y compris le format JSON, le format XML, etc.

Logique métier : écrivez le code de logique métier correspondant en fonction des exigences.

Logique de routage et de traitement des demandes : écrivez la logique de routage et de traitement des demandes en fonction du type de demande et du chemin de la demande.

Sécurité et authentification : clé, access_id

Rédiger la documentation et les tests de l'API : rédiger la documentation et les cas de test de l'API pour garantir l'exactitude et la convivialité de l'API.

Déployer l'API : Déployez dans le cloud ou sur un serveur pour une utilisation par d'autres applications.

 4. Convention de nommage

Il convient de noter que la conception et la mise en œuvre de l'API doivent suivre certaines bonnes pratiques, telles que de bonnes conventions de dénomination. La convention de dénomination de l'API peut varier en fonction de l'accord du projet spécifique et de l'équipe de développement, mais voici quelques conventions de dénomination générales :

 Utilisez des noms d'URI significatifs : l'URI de l'API doit décrire la ressource ou la fonctionnalité fournie par l'API. Par exemple, /api/users peut être utilisé pour obtenir tous les utilisateurs, tandis que /api/users/123 peut être utilisé pour obtenir un utilisateur spécifique avec l'ID 123. Un tel nommage d'URI peut améliorer la lisibilité et la maintenabilité de l'API.

 Use HTTP method naming : La méthode HTTP de l'API doit être associée à l'opération effectuée. Par exemple, utilisez la méthode GET pour obtenir des ressources, utilisez la méthode POST pour créer des ressources, utilisez la méthode PUT pour mettre à jour des ressources et utilisez la méthode DELETE pour supprimer des ressources. Une telle dénomination de méthode peut rendre l'API plus facile à comprendre et à utiliser.

  Respectez les conventions de dénomination : les API doivent utiliser des conventions de dénomination cohérentes pour améliorer la lisibilité et la maintenabilité. Par exemple, utilisez des lettres minuscules et des traits d'union pour séparer les mots en tant que composants URI, et utilisez des traits de soulignement pour séparer les mots en tant que clés pour les paramètres de requête et les corps de réponse.

 Évitez les verbes : les URI des API doivent décrire des ressources ou des fonctions, et non des opérations. Par exemple, /api/users peut être utilisé pour obtenir des utilisateurs au lieu de /api/get_users.

 Suivez le style de conception RESTful : RESTful est un style de conception d'API couramment utilisé, qui modélise l'API comme une collection de ressources et utilise des méthodes HTTP standard pour effectuer des opérations. Suivre le style de conception RESTful peut faciliter la compréhension et l'utilisation de l'API.

En conclusion, le nommage de l'API doit être simple, significatif, facile à comprendre et à maintenir. Le respect des conventions de dénomination ci-dessus peut aider les développeurs à créer des API de haute qualité, faciles à utiliser et à entretenir.

 5. Mécanisme de gestion des erreurs d'API

 Dans le développement d'API, la gestion des erreurs est une partie très importante. Un mécanisme de gestion des erreurs raisonnable peut rendre l'API plus robuste, fiable et facile à utiliser. Voici les mécanismes courants de gestion des erreurs d'API :

Code d'état HTTP :

from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/users/<int:user_id>', methods=['GET'])def get_user(user_id):    # 根据 user_id 获取用户信息    user = get_user_by_id(user_id)
    if user:        # 返回用户信息        return jsonify(user), 200    else:        # 返回错误信息和 404 状态码        return jsonify({'error': 'User not found'}), 404

Message d'erreur:

from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/users', methods=['POST'])def create_user():    # 获取 POST 请求中的数据    data = request.get_json()
    if not data or 'name' not in data or 'age' not in data:        # 返回错误信息和 400 状态码        return jsonify({'error': 'Name and age are required'}), 400    else:        # 创建用户,并返回用户信息和 201 状态码        user = create_new_user(data['name'], data['age'])        return jsonify(user), 201

Enregistrement:

import logging
app = Flask(__name__)logging.basicConfig(level=logging.INFO)
@app.route('/users', methods=['GET'])def get_users():    try:        # 获取所有用户信息        users = get_all_users()
        # 返回用户信息        return jsonify(users), 200    except Exception as e:        # 记录错误日志,并返回错误信息和 500 状态码        logging.error('Error occurred: {}'.format(str(e)))        return jsonify({'error': 'Internal server error'}), 500

 Authentification API :

from flask import Flask, jsonify, requestfrom functools import wraps
app = Flask(__name__)
def authenticate(func):    @wraps(func)    def wrapper(*args, **kwargs):        # 验证客户端身份        auth = request.authorization        if not auth or not check_auth(auth.username, auth.password):            # 返回错误信息和 401 状态码            return jsonify({'error': 'Unauthorized access'}), 401        else:            # 客户端身份验证通过,执行原始函数            return func(*args, **kwargs)    return wrapper
@app.route('/users', methods=['GET'])@authenticatedef get_users():    # 获取所有用户信息    users = get_all_users()    # 返回用户信息    return jsonify(users), 200

Limitation :

from flask import Flask, jsonify, requestfrom flask_limiter import Limiterfrom flask_limiter.util import get_remote_address
app = Flask(__name__)limiter = Limiter(app, key_func=get_remote_address, default_limits=["10 per minute"])
@app.route('/users', methods=['GET'])@limiter.limit("5 per minute")def get_users():    # 获取所有用户信息    users = get_all_users()
    # 返回用户信息    return jsonify(users), 200

 5. Combat réel

Nous écrivons une API pour lire la base de données MySQL en Python : 

 import mysql.connectorfrom mysql.connector import errorcode
# 连接MySQL数据库try:    cnx = mysql.connector.connect(user='username', password='password',                                  host='localhost', database='database_name')except mysql.connector.Error as err:    if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:        print("用户名或密码错误")    elif err.errno == errorcode.ER_BAD_DB_ERROR:        print("数据库不存在")    else:        print(err)
# 创建光标cursor = cnx.cursor()
# 编写SQL查询语句query = "SELECT * FROM table_name"
# 执行查询语句cursor.execute(query)
# 获取查询结果result = cursor.fetchall()
# 遍历结果并打印for row in result:    print(row)
# 关闭光标和连接,这步很重要,实际操作中一定要记得关闭光标,确保安全关闭数据库连接cursor.close()cnx.close() 

6. Recommandations

Ce qui précède n'est qu'une introduction brève et générale. Si vous souhaitez avoir une compréhension globale du développement d'API, je vous recommande certaines API couramment utilisées en python :

> NumPy : Une bibliothèque Python pour le calcul numérique. Pandas : pour l'analyse et la manipulation des données. Matplotlib : une bibliothèque Python pour la visualisation de données.

> Scikit-learn : bibliothèque Python pour l'apprentissage automatique et l'exploration de données. TensorFlow : une bibliothèque Python pour l'apprentissage automatique et l'apprentissage en profondeur.

> Keras : bibliothèque Python pour construire rapidement des modèles de deep learning. SQLAlchemy : bibliothèque Python pour manipuler et gérer des bases de données relationnelles.

> Beautiful Soup : bibliothèque Python pour l'analyse de pages Web et le grattage de données. Requêtes : bibliothèque Python pour les requêtes HTTP et l'acquisition de données.

> Jupyter Notebook : Un environnement de programmation interactif pour l'analyse et la visualisation de données.

et tutoriels associés :

Premiers pas avec le développement Web Flask : https://www.ibm.com/developerworks/cn/opensource/os-cn-flask/index.html

Utilisez Flask pour développer l'API RESTful : https://www.ibm.com/developerworks/cn/opensource/os-cn-flask-restful-api/

Documentation officielle du framework Django REST : https://www.django-rest-framework.org/

Guide pratique du développement d'API Python : https://zhuanlan.zhihu.com/p/76577882

Développement d'API en Python : https://zhuanlan.zhihu.com/p/38466244

Comment utiliser Python pour développer une API Web : https://www.twilio.com/blog/how-to-build-a-web-api-with-python

Consignes de conception d'API en Python : https://cloud.google.com/apis/design/

Utilisez Flask et SQLAlchemy pour développer l'API RESTful : https://realpython.com/flask-connexion-rest-api/

Guide de développement de l'API Python REST : https://www.codementor.io/@sagaragarwal94/building-a-basic-restful-api-in-python-58k02xsiq

Ces articles couvrent tous les aspects du développement de l'API Python, y compris le choix du cadre de développement Web, la conception et la mise en œuvre de l'API RESTful, la sécurité de l'API, l'optimisation des performances, etc. Vous pouvez choisir les articles correspondants pour étudier et pratiquer selon vos propres besoins. Je souhaite que les enfants apprennent quelque chose!

Je suppose que tu aimes

Origine blog.csdn.net/onebound_linda/article/details/131844805
conseillé
Classement