编程知识 cdmana.com

Fastapi Official Edition 005 - first step

Un nuage d'oiseaux:Cette série a été publiée pour promouvoir FastAPI Et propulsion FastAPI Traduction officielle chinoise,Pour l'instant,Terminé 98% Traduction officielle chinoise de,Si vous avez raison FastAPI Intéressé,Peut contribuer à ce projet Open Source fantastique,Comme la traduction scolaire、Traduction、Examen, etc.

Le développement de projets open source ne peut se faire sans le soutien de tous.Le plus simple, bien sûr, est de Github Allez Star C'est.

Si vous pensez FastAPI Pas mal.,Vous pouvez également transmettre、Reproduit ce texte,Pour en savoir plus Python Et si simple、Bibliothèque de soutien rapide.

FastAPI Adresse officielle:fastapi.tiangolo.com/zh/

Voici quelques - uns des besoins Review De PR,J'espère que tout le monde sera plus impliqué.

Voici le texte .


Ce guide sera présenté étape par étape FastAPI La plupart des fonctions .

Chaque chapitre de ce guide est progressif, Mais ils ont leurs propres thèmes. ,Vous pouvez lire les chapitres directement, Résolution de problèmes spécifiques API Besoins.

Ce guide est également un manuel de référence , Pour votre consultation à tout moment .

Code de fonctionnement

Tous les codes de ce guide peuvent être directement copiés et utilisés(En fait,,Ces codes ont été testés Python Documentation).

Pour exécuter l'échantillon , Il suffit de copier le code dans main.py, Démarrer avec la commande suivante uvicorn

$ uvicorn main:app --reload

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [28720]
INFO:     Started server process [28722]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
Copier le Code

Il est fortement recommandé queVous modifiez et exécutez ce code localement.

Seulement si le Code est entré dans un éditeur, Pour que vous puissiez vraiment sentir FastAPI Avantages,Découvrez exactement combien de codes vous devez entrer, Et un contrôle de type 、 Fonctions telles que le complément automatique .


Installation FastAPI

La première étape est l'installation FastAPI.

Apprenez ce tutoriel ,Toutes les bibliothèques de support de dépendance optionnelles doivent être installées:

$ pip install fastapi[all]
Copier le Code

......La commande ci - dessus est également installée pour exécuter FastAPI Serveur appliqué - uvicorn.

!!! note "Notes"

Vous pouvez installer des bibliothèques de support individuelles.

Lorsqu'une application doit être déployée dans un environnement de production,Installez d'abord FastAPI:

```
pip install fastapi
```

Et puis, Installer également le serveur  `uvicorn`:

```
pip install uvicorn[standard]
```

Installer d'autres bibliothèques de soutien des dépendances optionnelles séparément au besoin.
Copier le Code

Guide de l'utilisateur avancé

Terminé.Guide de l'utilisateurAprès, Vous pouvez continuer à apprendre Guide de l'utilisateur avancé .

Guide de l'utilisateur avancé Sur la base de ce guide , Les concepts de base sont les mêmes , Mais plus de fonctionnalités .

Il est recommandé de lire d'abord Guide de l'utilisateur.

Terminé.Guide de l'utilisateur Peut développer un système complet FastAPI Application.Et puis,Réutiliser Guide de l'utilisateur avancé Applications d'extension de fonctions dans .

Première étape

Le plus simple FastAPI Le document est le suivant: :

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def root():
    return {"message": "Hello World"}
Copier le Code

Copier le Code vers main.py.

Exécuter le serveur en temps réel :

$ uvicorn main:app --reload

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [28720]
INFO:     Started server process [28722]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
Copier le Code

!!! note "Notes"

`uvicorn main:app`  La description de la commande est la suivante: :

* `main`:`main.py` - Oui. Python **Module**;
* `app`:`main.py`  Moyenne `app = FastAPI()` Objet créé;
* `--reload`: Après la mise à jour du Code ,Redémarrer le serveur. Uniquement pour le développement .
Copier le Code

Les informations de sortie sont les suivantes:

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
Copier le Code

C'est FastAPI Appliqué à un service local URL.

Voir le document

Ouvrir l'accès au navigateur http://127.0.0.1:8000.

JSON La réponse est la suivante:

{"message": "Hello World"}
Copier le Code

API Documentation

Passer à http://127.0.0.1:8000/docs.

Voir généré automatiquement (Swagger UI)API Documentation:

image.png

Alternative API Documentation

Passer à http://127.0.0.1:8000/redoc.

Voir généré automatiquement (ReDoc) Autres documents :

image.png

OpenAPI

FastAPI Utiliser OpenAPI (Définition API La norme )Prends tout API Convertir en Aperçu général .

Aperçu général

Aperçu général Est la définition et la description des choses , N'est pas le Code qui implémente la fonction , Une description abstraite. .

API Aperçu général

Dans ce guide ,OpenAPI C'est la définition API Spécifications générales .

La vue d'ensemble ici comprend: API Chemin、 Paramètres du chemin, etc. .

Aperçu des données

Aperçu général Ce terme signifie également JSON Structure des données équivalentes .

Dans ce guide , Aperçu des données JSON Propriétés、 Type de données, etc. .

OpenAPI Et JSON Schema

OpenAPI Pour définir API Aperçu général . Cette vue d'ensemble contient JSON Schema Pour API Définition des données transmises et reçues.JSON Schema - Oui. JSON Critères d'aperçu des données .

Voir openapi.json

Si vous avez raison OpenAPI Aperçu original intéressant ,FastAPI Toutes les descriptions sont générées automatiquement API De JSON ( Aperçu général ).

Voir directement:http://127.0.0.1:8000/openapi.json.

JSON Le fichier commence comme suit: :

{
    "openapi": "3.0.2",
    "info": {
        "title": "FastAPI",
        "version": "0.1.0"
    },
    "paths": {
        "/items/": {
            "get": {
                "responses": {
                    "200": {
                        "description": "Successful Response",
                        "content": {
                            "application/json": {
...
Copier le Code

OpenAPI A quoi ça sert?

OpenAPI Vue d'ensemble pour l'entraînement FastAPI Deux intégrés API Documentation.

Basé sur OpenAPI Il y a beaucoup d'alternatives ,Pour FastAPI Il est facile d'ajouter d'autres alternatives à l'application.

OpenAPI Peut également être utilisé pour générer automatiquement et API Code client pour la communication .Par exemple, Front End、Mobile end、 Applications Internet des objets, etc. .

Résumé étape par étape

Première étape:Importer FastAPI

from fastapi import FastAPI
Copier le Code

FastAPI Oui. API Toutes les fonctions disponibles Python Catégorie.

!!! note "Détails techniques"

`FastAPI`  Est hérité directement de  `Starlette` La classe de.

`FastAPI` Peut être appelé Starlette Toutes les fonctions de.
Copier le Code

Deuxième étape:Création FastAPI Exemple

app = FastAPI()
Copier le Code

Variables app - Oui. FastAPI DeExemple de classe.

Cette instance crée tout API Principaux objets interactifs pour.

C'est app Est la commande suivante uvicorn Variables référencées :

$ uvicorn main:app --reload

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
Copier le Code

Si vous créez une application avec le code suivant:

my_awesome_api = FastAPI()
Copier le Code

Enregistrer le Code main.py, Pour appeler uvicorn

$ uvicorn main:my_awesome_api --reload

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
Copier le Code

Troisième étape: Créer une action de chemin

Chemin

CheminOui. URL Première barre oblique (/) Et après .

Ce qui suit URL Moyenne:

https://example.com/items/foo
Copier le Code

……Chemin- Oui.:

/items/foo
Copier le Code

!!! info "Description"

**Chemin**Aussi appelé**Point final**Ou**Routage**.
Copier le Code

Développement API Heure,Chemin C'est la séparation. concerns Et resources Principales approches.

Fonctionnement

FonctionnementOui. HTTP Méthodes.

Les méthodes courantes sont les suivantes::

  • POST
  • GET
  • PUT
  • DELETE

Les méthodes les plus rares sont les suivantes: :

  • OPTIONS
  • HEAD
  • PATCH
  • TRACE

HTTP Le Protocole supporte l'utilisation de l'un ou l'autre de ces(Ou plus)Méthodes Communication avec le chemin .


Développement API Heure, En général, vous utilisez un HTTP Méthode pour effectuer une action spécifique .

Méthodes courantes:

  • POST:Créer des données
  • GET:Lire les données
  • PUT:Mise à jour des données
  • DELETE:Supprimer les données

OpenAPI Prends ça. HTTP La méthode est appeléeFonctionnement.

On l'appelle aussiFonctionnement.

Définition Garniture de fonctionnement du chemin

@app.get("/")
Copier le Code

@app.get("/") Dis - le. FastAPI Les fonctions suivantes traitent les demandes d'accès de la façon suivante:

  • Le chemin de la demande est /
  • Utiliser get Fonctionnement

!!! info "@decorator Description"

`@something` La syntaxe est Python **Décorateur**.

Comme un capuchon décoratif placé au - dessus d'une fonction(C'est comme ça que le terme a été nommé).

 Trimmer reçoit la fonction suivante , Et l'utiliser pour faire quelque chose .

Dans ce cas,, Ce décorateur dit  **FastAPI**  Correspondant à la fonction suivante **Chemin**- Oui. `/` Et `get` **Fonctionnement**.

C'est ça.*** Garniture de fonctionnement du chemin ***.
Copier le Code

Les autres opérations courantes sont les suivantes: :

  • @app.post()
  • @app.put()
  • @app.delete()

Et des opérations rares :

  • @app.options()
  • @app.head()
  • @app.patch()
  • @app.trace()

!!! tip "Conseils"

Vous pouvez utiliser n'importe quelle opération à votre guise(HTTPMéthodes).

**FastAPI** Ne pas imposer une signification particulière à l'opération.

 Les instructions de ce chapitre ne sont que des conseils , Ce n'est pas une exigence. .

Par exemple,Utiliser GraphQL Heure, En général, toutes les opérations n'utilisent que  `post`  Une approche .
Copier le Code

Quatrième étape:Définition Fonction d'exploitation du chemin

Fonction d'exploitation du chemin Se compose des éléments suivants::

  • Chemin/
  • Fonctionnementget
  • FonctionsDécorateur Fonctions ci - dessous (Situé à @app.get("/") En bas)
async def root():
Copier le Code

La fonction d'exploitation du chemin est Python Fonctions.

FastAPI Utilisation par réception GET Accès aux méthodes URL**/**Cette fonction est appelée chaque fois que vous demandez.

Dans cet exemple, la fonction pathoperator est asynchrone(async).


Peut également ne pas utiliser async def,Définir une fonction d'opération de chemin comme une fonction normale:

def root():
Copier le Code

!!! note "Notes"

Si la différence entre une fonction normale et une fonction asynchrone n'est pas claire, Voir asynchrone :***J'ai hâte.?*** Contenu de la Section .
Copier le Code

Étape 5: Retour au contenu

return {"message": "Hello World"}
Copier le Code

La fonction pathoperator peut retourner DictionnaireListe,EtStringEntier Valeur unique égale .

Tu peux revenir. Pydantic Modèle( Plus tard ).

Il y en a beaucoup qui peuvent être automatiquement convertis en JSON Objet et modèle pour (Par exemple, ORM Attendez.).Vous pouvez essayer d'utiliser vos objets préférés,FastAPI Il est probable qu'il a été soutenu.

Résumé

  • Importer FastAPI
  • Création app Exemple
  • Compilation Garniture de fonctionnement du chemin (Par exemple: @app.get("/")
  • Compilation Fonction d'exploitation du chemin (Par exemple: def root(): ...
  • Exécuter le serveur de développement(Par exemple: uvicorn main:app --reload

版权声明
本文为[Un oiseau mort.]所创,转载请带上原文链接,感谢
https://cdmana.com/2021/09/20210914164725495u.html

Scroll to Top