Maison > développement back-end > Tutoriel Python > Principaux frameworks d'API Python avec prise en charge d'OpenAPI

Principaux frameworks d'API Python avec prise en charge d'OpenAPI

Patricia Arquette
Libérer: 2024-12-27 22:18:09
original
730 Les gens l'ont consulté

Il semble que chaque mois, un nouveau framework Web Python soit lancé - avec un nouvel ensemble de fonctionnalités, de meilleures performances ou une syntaxe plus propre que ses prédécesseurs. Cependant, une fonctionnalité qui est souvent ignorée est la prise en charge d’OpenAPI. Nous avons longuement parlé des avantages d'OpenAPI - y compris la commercialisation de votre API - mais en bref, la génération d'OpenAPI via un framework Web est le meilleur moyen de vous assurer que la documentation de votre API correspond à votre implémentation d'API. Il semble que les nouveaux frameworks commencent à prendre conscience de l'importance d'OpenAPI - avec certains frameworks comme Robyn, ajoutant la génération de documents OpenAPI dans le cadre de la version bêta.

Dans cet article, nous explorerons 20 des frameworks et bibliothèques d'API les plus populaires pour créer des API avec Python, qui prennent en charge la génération de spécifications OpenAPI/Swagger, soit intégrées, soit via une bibliothèque/extension externe.

1. API rapide

Top Python API Frameworks with OpenAPI Support

Qu’est-ce que FastAPI ?

FastAPI est un framework Web moderne et performant permettant de créer des API avec Python 3.6, basées sur des astuces de type Python standard. Il est conçu pour un développement rapide et une efficacité élevée. Zuplo est fier de sponsoriser le projet FastAPI, pour aider à piloter le développement d'API en Python.

Prise en charge de FastAPI OpenAPI/Swagger

  • Support intégré : FastAPI génère automatiquement OpenAPI (anciennement Swagger) schémas de votre code.
  • Documentation interactive : fournit Interfaces Swagger UI et ReDoc prêtes à l'emploi, accessibles via les points de terminaison /docs et /redoc.

Avantages et inconvénients de FastAPI

Avantages

  • Haute Performance : Comparable à NodeJS et Go, grâce à son utilisation de programmation asynchrone.
  • Documentation automatique : génère un schéma OpenAPI et des documents interactifs automatiquement.
  • Facilité d'utilisation : convivial pour les développeurs avec une syntaxe concise.
  • Validation : utilise Pydantic pour la validation des données basée sur des indices de type.
  • Support asynchrone : construit sur Starlette, prend en charge la programmation asynchrone.

Inconvénients

  • Courbe d'apprentissage : nécessite une compréhension des astuces de type Python et de l'async programmation.
  • Relativement nouveau : moins mature que certains frameworks plus anciens, bien qu'il ait un communauté en pleine croissance.

2. Cadre Django REST (DRF)

Qu’est-ce que le framework REST Django ?

Django REST Framework est une boîte à outils puissante et flexible pour créer des API Web à l'aide de Django, le framework Web Python de haut niveau populaire. Zuplo est fier de sponsoriser le projet DRF pour continuer à améliorer l'écosystème de développement d'API Django.

Prise en charge de Django Rest Framework OpenAPI/Swagger

  • Packages tiers : prise en charge d'OpenAPI via des packages tels que drf-yasg (OpenAPI 2.x / Swagger) et drf-spectacular (OpenAPI 3.x).

Avantages et inconvénients du framework Django REST

Avantages

  • Intégration avec Django : exploite les fonctionnalités robustes de Django comme ORM, authentification.
  • Complet : Riche en fonctionnalités de sérialisation, d'authentification, autorisations.
  • Soutien communautaire : Grand écosystème et communauté.

Inconvénients

  • Complexité : peut être excessif pour des API simples.
  • Performance : Potentiellement plus lente en raison des couches d'abstraction.

3. Flacon

Qu’est-ce que Flask ?

Flask est un framework micro web écrit en Python. Il est connu pour sa simplicité et son extensibilité.

Prise en charge de Flask OpenAPI/Swagger

  • Extensions requises : utilise des extensions telles que APIFairy ou Flask-Smorest pour la prise en charge d'OpenAPI.
  • Documentation automatique : ces extensions peuvent générer une interface utilisateur Swagger et Spécifications OpenAPI.

Avantages et inconvénients du flacon

Avantages

  • Léger : noyau minimaliste, facile à démarrer.
  • Flexible : hautement extensible avec de nombreux plugins.
  • Grande communauté : ressources et soutien abondants.

Inconvénients

  • Configuration manuelle : nécessite une configuration supplémentaire pour des fonctionnalités telles que la prise en charge d'OpenAPI.
  • Extensions incohérentes : qualité et état de maintenance variables parmi extensions.

4. Connexion

Qu’est-ce que Connexion ?

Connexion est un framework qui gère automatiquement les requêtes HTTP basées sur la spécification OpenAPI, construite sur Flask.

Connexion Support OpenAPI/Swagger

  • Intégration OpenAPI de première classe : utilise vos spécifications OpenAPI pour acheminer les requêtes et valider les entrées.
  • Documentation automatique : fournit une interface utilisateur Swagger basée sur vos fichiers OpenAPI.

Avantages et inconvénients de la connexion

Avantages

  • Développement API-First : encourage la conception de contrats API avant mise en œuvre.
  • Validation d'entrée : valide automatiquement les requêtes par rapport à l'OpenAPI schéma.
  • Moins de passe-partout : réduit la duplication de code.

Inconvénients

  • Structure rigide : nécessite de maintenir les spécifications OpenAPI synchronisées avec le code.
  • Complexité : peut être un défi pour ceux qui ne sont pas familiers avec Approches API-first/Spec-first.

5. Ève

Qu'est-ce qu'Ève ?

Eve est un framework API REST prêt à l'emploi optimisé par Flask, MongoDB et Redis.

Prise en charge d'Eve OpenAPI/Swagger

  • Extension requise : Utilisations eve-swagger pour générer la documentation Swagger/OpenAPI.

Avantages et inconvénients d'Ève

Avantages

  • Configuration rapide : développement rapide d'API avec une configuration minimale.
  • Gestion des données : prise en charge intégrée de MongoDB avec validation des données.
  • Fonctionnalités : prend en charge la pagination, le tri, le filtrage et bien plus encore.

Inconvénients

  • Dépendance de la base de données : principalement conçu pour MongoDB.
  • Flexibilité : Moins flexible si vous devez vous écarter de ses conventions.

6. Sanique

Top Python API Frameworks with OpenAPI Support

Qu'est-ce que Sanic

Sanic est un serveur Web et un framework Web Python 3.7 écrit pour être rapide. Il permet une gestion asynchrone des requêtes. Zuplo est un fier sponsor de Sanic, pour aider à repousser les limites des performances de l'API Python.

Prise en charge de Sanic OpenAPI/Swagger

  • Support intégré : prêt à l'emploi, Sanic Extensions fournit Documentation API générée automatiquement à l'aide de la spécification OpenAPI v3.0.

Avantages et inconvénients de Sanic

Avantages

  • Haute performance : les capacités asynchrones le rendent très rapide.
  • Syntaxe Async/Await : prise en charge asynchrone de Python moderne.

Inconvénients

  • Écosystème plus petit : moins d'extensions et de support communautaire par rapport à des cadres plus grands.
  • Moins mature : Pas aussi éprouvé que certaines alternatives.

7. Faucon

Qu'est-ce que le Faucon ?

Falcon est une bibliothèque WSGI minimaliste permettant de créer des API Web et des backends d'applications rapides.

Prise en charge de Falcon OpenAPI/Swagger

  • Extensions requises : bibliothèques comme falcon-openapi ou falcon-apispec active la prise en charge d'OpenAPI. Il convient de noter que cela fait de nombreuses années que l'une ou l'autre de ces extensions n'a pas été mise à jour.
  • Intégration manuelle : peut nécessiter une configuration plus pratique pour intégrer OpenAPI.

Avantages et inconvénients du faucon

Avantages

  • Performances : hautement optimisées pour la vitesse.
  • Léger : Design minimaliste avec peu de dépendances.

Inconvénients

  • Moins de fonctionnalités prêtes à l'emploi : nécessite un travail supplémentaire pour des fonctionnalités telles que authentification.
  • Communauté plus petite : moins de ressources et d'extensions.

8. Câlin

Qu'est-ce que câlin

Hug est un framework Python 3 qui permet de développer des API le plus simplement possible, mais pas plus simple.

Prise en charge d'OpenAPI/Swagger

  • Support intégré : génère automatiquement la documentation et OpenAPI schémas à partir de vos annotations de code. Malheureusement, ce n'est pas au format OpenAPI ou Swagger, vous devrez donc le transformer vous-même. J'ai créé un script simple pour vous aider à démarrer.

Avantages et inconvénients des câlins

Avantages

  • Simplicité : configuration minimale avec une syntaxe propre.
  • Interfaces multiples : peuvent exposer des API via HTTP, CLI ou des fonctions locales.

Inconvénients

  • Taille de la communauté : base d'utilisateurs plus petite, ce qui peut avoir un impact sur le support.
  • Activité de développement : mises à jour moins fréquentes que plus populaires cadres.

9. Bouteille

Qu’est-ce que la bouteille ?

Bottle est un micro-framework Web WSGI rapide, simple et léger pour Python.

Prise en charge de la bouteille OpenAPI/Swagger

  • Extensions requises : Utiliser bouteille-swagger ou bouteille-openapi-3.
  • Configuration manuelle : peut nécessiter des étapes manuelles pour documenter les API.

Avantages et inconvénients de la bouteille

Avantages

  • Aucune dépendance : module à fichier unique sans dépendances externes.
  • Léger : Idéal pour les petites applications et le prototypage.

Inconvénients

  • Fonctionnalités limitées : minimaliste par conception ; manque de fonctionnalités avancées par rapport au boîte.
  • Écosystème plus petit : moins de plugins et d'extensions.

10.Pyramide

Top Python API Frameworks with OpenAPI Support

Qu’est-ce que la Pyramide ?

Pyramid est un petit framework Web Python rapide et terre-à-terre. Il est conçu pour faciliter la création d'applications Web.

Prise en charge de Pyramid OpenAPI/Swagger

  • Extensions Obligatoire :pyramid_openapi3 est la dernière extension, tandis que d'autres utilisent pyramid_swagger de Yelp. Si vous utilisez Cornice pour créer des API au-dessus de Pyramid, vous pouvez utiliser l'extension cornice-swagger pour ajouter la prise en charge d'OpenAPI.

Avantages et inconvénients de la pyramide

Avantages

  • Flexibilité : Convient aux petites et grandes applications.
  • Sécurité : Forte importance accordée aux pratiques de sécurité.

Inconvénients

  • Complexité : courbe d'apprentissage plus raide.
  • Popularité : Moins mainstream par rapport à Django ou Flask.

11. Fondu (obsolète)

Qu’est-ce que fondu ?

Molten est un framework minimal, rapide et extensible pour créer des API HTTP en Python. Le projet est devenu obsolète en avril 2024.

Prise en charge de Molten OpenAPI/Swagger

  • Support intégré : Génère automatiquement la documentation OpenAPI à partir des définitions de routes.
  • Annotations de type : utilise des astuces de type pour le routage et la validation.

Avantages et inconvénients fondus

Avantages

  • Performance : optimisé pour la vitesse.
  • Fonctionnalités modernes : prend en charge l'injection de dépendances et les annotations de type.

Inconvénients

  • Adoption limitée : communauté plus petite et moins de ressources.
  • Moins mature : Pas aussi largement utilisé ou testé.

12. Mouton noir

Qu’est-ce que BlackSheep ?

BlackSheep est un framework Web asynchrone permettant de créer des applications Web basées sur des événements avec Python.

Prise en charge de BlackSheep OpenAPI/Swagger

  • Support intégré : BlackSheep implémente la génération automatique de documentation OpenAPI pour les scénarios les plus courants et fournit des méthodes pour enrichir la documentation avec des détails.

Avantages et inconvénients du mouton noir

Avantages

  • Support asynchrone : conçu pour le Python asynchrone moderne.
  • Performance : Routage et manipulation hautes performances.

Inconvénients

  • Taille de la communauté : base d'utilisateurs plus petite.
  • Documentation : Documentation moins complète.

13. Pinte

Qu’est-ce qu’un quart ?

Quart est un framework Web ASGI basé sur Flask, visant à offrir la facilité d'utilisation de Flask avec l'avantage supplémentaire du support asynchrone.

Prise en charge de Quart OpenAPI/Swagger

  • Extensions requises : similaire à Flask, s'appuie sur des extensions pour OpenAPI soutien. quart-schema est une extension plus récente, l'autre étant l'ancienne quart-openapi.
  • Compatibilité : Peut utiliser directement de nombreuses extensions Flask.

Avantages et inconvénients du quart

Avantages

  • Support asynchrone : prise en charge complète de l'asynchrone et de l'attente.
  • Familiarité : API similaire à Flask.

Inconvénients

  • Compatibilité des extensions : Toutes les extensions Flask ne sont pas compatibles.
  • Écosystème plus petit : moins de ressources spécifiques à Quart.

14. Répondeur

Qu'est-ce que le répondeur ?

Responder est un framework Web pour Python qui vise à rassembler le meilleur de Flask, Falcon et d'autres.

Prise en charge du répondeur OpenAPI/Swagger

  • Support intégré : Génère automatiquement la documentation OpenAPI.
  • Documentation interactive : fournit une interface utilisateur Swagger.

Avantages et inconvénients du répondeur

Avantages

  • Simplicité : Facile à apprendre et à utiliser.
  • Documentation automatique : réduit les frais liés à la maintenance des documents API.

Inconvénients

  • Statut de maintenance : à partir de 2023, il est moins activement entretenu.
  • Taille de la communauté : base d'utilisateurs plus petite et moins de ressources.

15. Tornade

Qu’est-ce que la tornade ?

Tornado est un framework Web Python et une bibliothèque de réseau asynchrone.

Prise en charge de Tornado OpenAPI/Swagger

  • Extensions requises : Utiliser tornado-swagger ou bibliothèques similaires.
  • Configuration manuelle : peut nécessiter des efforts supplémentaires pour l'intégration.

Avantages et inconvénients de la tornade

Avantages

  • Évolutivité : idéal pour les applications nécessitant des connexions de longue durée.
  • Asynchrone : capacités asynchrones intégrées.

Inconvénients

  • Moins conventionnel : différent des frameworks WSGI standards.
  • Complexité : Peut être plus complexe à utiliser.

16. Robyn

Top Python API Frameworks with OpenAPI Support

Qu'est-ce que Robyn

Robyn est un framework Web Python asynchrone hautes performances axé sur la vitesse et l'efficacité. Il exploite le runtime Tokio de Rust via PyO3 pour obtenir des mesures de performances impressionnantes. Robyn vise à être l'un des frameworks Web Python les plus rapides disponibles.

Prise en charge d'OpenAPI/Swagger

  • Support intégré : Robyn a Prise en charge OpenAPI intégrée, avec à la fois la spécification sur /openapi.json et l'interface utilisateur de documentation sur /docs.

Avantages et inconvénients de Robyn

Avantages

  • Hautes performances : l'utilisation du runtime asynchrone de Rust offre des avantages de vitesse.
  • Asynchrone : construit avec la syntaxe async et wait pour Python moderne développement.
  • Minimaliste : cadre léger qui évite les frais généraux inutiles.

Inconvénients

  • Maturité : Étant relativement nouveau, il peut manquer de fonctionnalités et de stabilité par rapport à des frameworks plus établis.
  • Support communautaire : une communauté plus petite signifie moins de ressources, de plugins et extensions tierces.
  • Documentation : peut avoir une documentation moins complète en raison de sa version plus récente. statut.

17. Uvicorne

Qu’est-ce qu’Uvicorn ?

Uvicorn est une implémentation de serveur ASGI ultra-rapide, utilisant uvloop et httptools. Il est conçu pour exécuter des applications Web Python asynchrones, en particulier celles construites avec des frameworks comme FastAPI, Starlette et autres.

Prise en charge d'Uvicorn OpenAPI/Swagger

  • Pas un Framework : Uvicorn est un serveur ASGI, pas un framework web. Il ne fournit pas de fonctionnalités telles que le routage, le middleware ou la prise en charge d'OpenAPI.
  • Utilisation avec des frameworks : lorsqu'il est utilisé avec des frameworks comme FastAPI ou Starlette, Uvicorn sert l'application et le framework gère le support OpenAPI/Swagger.

Avantages et inconvénients d'Uvicorn

Avantages

  • Haute Performance : Extrêmement rapide grâce à l'utilisation d'uvloop et httpoutils.
  • Conforme aux normes : implémente la spécification ASGI, garantissant compatibilité avec divers frameworks.
  • Léger : surcharge minimale et facile à déployer.

Inconvénients

  • Pas un framework complet : n'inclut pas les fonctionnalités du framework Web ; tu auras besoin de l'utiliser en conjonction avec un framework compatible ASGI.

18. Starlette

Qu’est-ce que Starlette ?

Starlette est un framework/boîte à outils ASGI léger, idéal pour créer des services asynchrones hautes performances en Python. Il fournit les composants essentiels nécessaires à la création d'applications Web, notamment le routage, le middleware, les sessions, etc.

Prise en charge de Starlette OpenAPI/Swagger

  • Support intégré : Starlette prend en charge la génération de schémas API en inspectant les routes sur l'application via app.routes et en utilisant les docstrings ou d'autres attributs sur les points de terminaison afin de déterminer un schéma API complet.

Avantages et inconvénients de Starlette

Avantages

  • Haute performance : Conçu pour la rapidité et l'efficacité, adapté à la construction API performantes.
  • Asynchrone : prend entièrement en charge async et wait, en tirant parti du Python moderne fonctionnalités.
  • Conception modulaire : permet aux développeurs de choisir les composants selon leurs besoins.

Inconvénients

  • Minimaliste : il manque certaines fonctionnalités de niveau supérieur prêtes à l'emploi, telles que documentation OpenAPI automatique.
  • Courbe d'apprentissage : peut être un défi pour ceux qui découvrent la programmation asynchrone ou qui préfèrent les cadres avec piles incluses.

19. Litestar

Top Python API Frameworks with OpenAPI Support

Qu’est-ce que Litestar ?

Litestar (anciennement connu sous le nom de Starlite) est un framework ASGI nouvellement développé inspiré de Starlette et FastAPI, visant à fournir un équilibre entre performances et facilité d'utilisation.

Prise en charge de Litestar OpenAPI/Swagger

  • Support intégré : Litestar a Génération de schéma OpenAPI intégrée et documentation automatique.
  • Documentation interactive : fournit une interface utilisateur Swagger et ReDoc prêts à l'emploi.

Avantages et inconvénients de Litestar

Avantages

  • Performance : Conçu pour être rapide et efficace.
  • Facilité d'utilisation : simplifie le développement d'API avec des valeurs par défaut raisonnables.
  • Fonctionnalités modernes : prend en charge l'asynchrone/l'attente, les annotations de type et les dépendances injection.

Inconvénients

  • Nouveauté : en tant que cadre plus récent, il peut bénéficier de moins de soutien de la communauté et ressources.
  • API évolutive : des mises à jour fréquentes peuvent entraîner des modifications radicales.

20. API Star (obsolète)

Qu’est-ce qu’API Star ?

APIStar était un framework permettant de créer des API Web avec le support OpenAPI. Le projet est devenu obsolète en février 2022.

Prise en charge d'API Star OpenAPI/Swagger

  • Support intégré : Utilisé les schémas OpenAPI directement dans le code.

Avantages et inconvénients de l'API Star

Avantages

  • Strong Typing : annotations de type accentuées.

Inconvénients

  • Obsolète : n'est plus maintenu ; non recommandé pour les nouveaux projets.

Comment choisir un framework API Python ?

Lorsque vous choisissez un framework prenant en charge OpenAPI/Swagger, tenez compte des éléments suivants :

  • Exigences du projet : La taille et la complexité de votre projet. C'est peut-être difficile de trouver des développeurs pour des frameworks de niche et difficile de former les coéquipiers existants sur les nouveaux paradigmes/concepts.
  • Communauté et soutien : les cadres avec des communautés plus grandes ont tendance à avoir plus de ressources.
  • Besoins de performances : Si des performances élevées sont cruciales, envisagez l'asynchrone des frameworks comme FastAPI ou Sanic.
  • Style de développement : que vous préfériez le code d'abord ou l'API d'abord/les spécifications d'abord développement.

Quel est le meilleur framework API Python ?

FastAPI se distingue par sa prise en charge OpenAPI intégrée, ses hautes performances, sa communauté florissante et ses fonctionnalités modernes. Django REST Framework est idéal si vous utilisez déjà Django et avez besoin d'un framework API robuste et riche en fonctionnalités. Flask offre flexibilité et simplicité mais nécessite des extensions pour la prise en charge d'OpenAPI - nous ne le recommandons donc pas pour les projets plus récents..

Quel est le framework API Python le plus rapide ?

En novembre 2024, Robyn prétend être le framework le plus rapide :

Top Python API Frameworks with OpenAPI Support

Principes essentiels de l'API Python – Ne les oubliez pas !

Quel que soit le framework d'API Python que vous choisissez, vous aurez besoin des 3 piliers des API avant de passer à la production :

  1. Authentification (ex. Authentification par clé API)
  2. Documentation (ex. Portail de documentation pour développeurs avec référence API, authentification, facturation, analyses, exemples de code, etc.)
  3. Protection (ex. Limitation des tarifs et quotas)

Zuplo peut s'occuper de tout cela pour vous - gratuitement ! Vous pouvez commencer gratuitement ou prendre du temps avec notre équipe et voir Zuplo en action.

Foire aux questions

Qu’est-ce que WSGI ?

WSGI signifie Web Server Gateway Interface. Il s'agit d'une spécification qui définit une interface standard entre les serveurs Web et les applications ou frameworks Web Python. WSGI permet aux développeurs d'écrire des applications Web portables pouvant s'exécuter sur n'importe quel serveur Web compatible WSGI, favorisant ainsi l'interopérabilité et la flexibilité de l'écosystème Web Python.

Qu’est-ce que l’ASGI ?

ASGI signifie Asynchronous Server Gateway Interface. Il s'agit d'une spécification qui définit une interface standard entre les serveurs Web, les frameworks et les applications Python asynchrones. ASGI a été développé pour succéder à WSGI (Web Server Gateway Interface) pour prendre en charge les applications et protocoles asynchrones pilotés par événements au-delà de HTTP, tels que WebSockets.

Quelles sont les différences entre WSGI et ASGI

| Fonctionnalité | WSGI | ASGI | | --------------- | ------------------------------------- | -------------------------------------------------- ------ | | Concurrence | Synchrone (une requête à la fois) | Asynchrone (gère plusieurs connexions simultanément) | | Protocoles | HTTP/1.1 uniquement | HTTP/1.1, HTTP/2, WebSockets et plus | | Cas d'utilisation | Applications Web traditionnelles | Applications en temps réel, connexions durables, services asynchrones | | Versions Python | Compatible avec les anciennes versions de Python | Nécessite Python 3.5 pour les fonctionnalités asynchrones |

Où dois-je héberger mon API Python ?

Il existe de nombreuses options pour héberger votre API Python, notamment

  • Fournisseurs de plateforme en tant que service (PaaS) comme PythonAnywhere ou Render
  • Infrastructure as a Service (IaaS), c'est-à-dire les gros cloud comme AWS EC2, Azure VM, GCP Moteur de calcul
  • Serveurs privés virtuels (VPS) comme DigitalOCean ou Linode
  • Conteneurs (Docker Kubernetes) utilisant Google Kubernetes Engine
  • Plateformes sans serveur comme AWS Lambda ou Google Cloud Functions

Quelle est la meilleure passerelle API pour les API Python ?

La passerelle API Edge de Zuplo offre des performances de mise en cache supérieures, une expérience de développement intuitive utilisant git et une prise en charge complète d'OpenAPI. Cela en fait un choix naturel pour la plupart des frameworks d'API Python, en particulier ceux prenant en charge OpenAPI.

Quelle est la meilleure façon de documenter une API Python ?

De nombreux frameworks Python (ex. FastAPI, Litestar) ont un support intégré pour OpenAPI, que la plupart des plateformes de documentation API (ex. Zudoku) prennent en charge dès le départ. Pour une expérience complète de documentation de l'API, pensez au portail des développeurs de Zuplo, qui propose des documents, une authentification intégrée, une facturation en libre-service et des analyses d'utilisation.

Quelle est la meilleure façon de monétiser une API Python ?

Le moyen le plus rapide et le plus abordable de configurer la monétisation consiste à utiliser la fonctionnalité de monétisation API de Zuplo, qui s'intègre directement aux plateformes de paiement comme Stripe. Vous pouvez facilement créer des forfaits, permettre aux utilisateurs de s'inscrire, émettre des clés API, contrôler les abonnements et appliquer des quotas.

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!

source:dev.to
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal