Maison >développement back-end >Tutoriel Python >Comment utiliser les paramètres de chemin dans FastAPI pour les requêtes paramétrées

Comment utiliser les paramètres de chemin dans FastAPI pour les requêtes paramétrées

王林
王林original
2023-07-28 15:13:461225parcourir

Comment utiliser les paramètres de chemin dans FastAPI pour les requêtes paramétrées

FastAPI est un framework Web rapide (hautes performances), facile à utiliser et moderne développé sur la base d'API standard (par exemple, en utilisant Pydantic et OpenAPI). Dans FastAPI, nous pouvons utiliser les paramètres de chemin pour paramétrer les requêtes afin de mieux gérer les différentes requêtes.

Un paramètre de chemin fait référence à la partie de l'URL qui identifie une instance spécifique d'une ressource. L'utilisation des paramètres de chemin peut nous aider à obtenir des données spécifiques de l'API Web en fonction de différents besoins. Ce qui suit explique comment utiliser les paramètres de chemin pour effectuer des requêtes paramétrées dans FastAPI et fournit des exemples de code correspondants.

Tout d'abord, nous devons importer les modules FastAPI et Path et créer un objet app : FastAPIPath模块,并创建一个app对象:

from fastapi import FastAPI, Path

app = FastAPI()

接下来,我们可以在路由路径中定义路径参数。路径参数是由花括号包围的字符串,我们可以在其中定义参数的名称和数据类型。例如,我们可以定义一个item_id的路径参数:

@app.get("/items/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}

在上面的例子中,我们定义了一个/items/{item_id}的路由路径,并将路径参数item_id的数据类型定义为int。在函数参数中,我们可以直接使用路径参数的名称item_id来获取该值。

当我们向服务器发送请求 /items/42时,FastAPI将自动将路径参数的值传递给相应的函数,并将其作为参数的值返回。在上面的例子中,将返回一个JSON对象,该对象包含参数的名称和值:

{"item_id": 42}

我们还可以为路径参数指定其他参数。例如,我们可以指定路径参数的最小值和最大值。下面是一个示例:

@app.get("/users/{user_id}")
async def read_user(user_id: int = Path(..., ge=1, le=100)):
    return {"user_id": user_id}

在上面的例子中,我们使用了gele两个参数限制了user_id的范围,表示user_id的值必须大于等于1且小于等于100。如果我们发送的请求中user_id超出了这个范围,FastAPI将会发送一个HTTP异常响应。

除了常规的数据类型,我们还可以使用枚举类型作为路径参数的数据类型。下面是一个示例:

from enum import Enum

class Size(str, Enum):
    small = "small"
    medium = "medium"
    large = "large"

@app.get("/items/{item_id}/size/{size}")
async def read_item_size(item_id: int, size: Size):
    return {"item_id": item_id, "size": size}

在上面的例子中,我们定义了一个Size枚举类,并将其作为参数size的数据类型。当我们发送请求 /items/42/size/small 时,FastAPI将会将路径参数的值传递给相应的函数,并将其作为参数的值返回。

使用路径参数进行参数化请求是使用FastAPI处理Web API中不同请求的重要技术之一。通过路径参数,我们可以定义不同的路由路径,并根据不同的需求从服务器中获取特定的数据。在上述示例中,我们演示了如何使用路径参数进行参数化请求,并提供了对应的代码示例。

总结一下,在FastAPI中使用路径参数进行参数化请求的步骤如下:

  1. 导入Path模块和FastAPI库。
  2. 创建一个apprrreee
  3. Ensuite, nous pouvons acheminer le chemin Définissez les paramètres du chemin dans . Un paramètre de chemin est une chaîne entourée d'accolades où l'on peut définir le nom et le type de données du paramètre. Par exemple, nous pouvons définir un paramètre de chemin de item_id :
  4. rrreee
  5. Dans l'exemple ci-dessus, nous définissons un chemin de routage de /items/{item_id} et ajoutons les données le type du paramètre de chemin item_id est défini comme int. Dans les paramètres de la fonction, on peut utiliser directement le nom du paramètre de chemin item_id pour obtenir la valeur.
  6. Lorsque nous envoyons une requête au serveur /items/42, FastAPI transmettra automatiquement la valeur du paramètre path à la fonction correspondante et la renverra comme valeur du paramètre. Dans l'exemple ci-dessus, un objet JSON sera renvoyé contenant le nom et la valeur du paramètre :
rrreee

Nous pouvons également spécifier des paramètres supplémentaires pour le paramètre path. Par exemple, nous pouvons spécifier des valeurs minimales et maximales pour les paramètres de chemin. Voici un exemple :

rrreee

Dans l'exemple ci-dessus, nous avons utilisé les deux paramètres ge et le pour limiter la plage de user_id, indique que la valeur de user_id doit être supérieure ou égale à 1 et inférieure ou égale à 100. Si le user_id dans la requête que nous envoyons dépasse cette plage, FastAPI enverra une réponse d'exception HTTP.

    En plus des types de données normaux, nous pouvons également utiliser des types d'énumération comme types de données pour les paramètres de chemin. Voici un exemple :
  • rrreee
  • Dans l'exemple ci-dessus, nous définissons une classe d'énumération Size et l'utilisons comme type de données du paramètre size. Lorsque nous envoyons une requête à /items/42/size/small, FastAPI transmettra la valeur du paramètre path à la fonction correspondante et la renverra comme valeur du paramètre.

Les requêtes paramétrées utilisant des paramètres de chemin sont l'une des techniques importantes pour utiliser FastAPI pour gérer différentes requêtes dans l'API Web. Grâce aux paramètres de chemin, nous pouvons définir différents chemins de routage et obtenir des données spécifiques du serveur en fonction de différents besoins. Dans l'exemple ci-dessus, nous montrons comment utiliser les paramètres de chemin pour paramétrer les requêtes et fournissons des exemples de code correspondants.

🎜Pour résumer, les étapes d'utilisation des paramètres de chemin pour effectuer des requêtes paramétrées dans FastAPI sont les suivantes : 🎜
    🎜Importez le module Path et la bibliothèque FastAPI. 🎜🎜Créez un objet app en tant qu'instance de l'application. 🎜🎜Définissez les paramètres de chemin dans le chemin de routage et utilisez des accolades pour délimiter les paramètres. 🎜🎜Dans la fonction correspondante, vous pouvez directement utiliser le nom du paramètre path pour obtenir la valeur du paramètre. 🎜🎜🎜L'utilisation des paramètres de chemin peut nous aider à mieux gérer différentes demandes et à obtenir avec précision des données spécifiques du serveur. 🎜🎜Référence : 🎜🎜🎜[Documentation FastAPI](https://fastapi.tiangolo.com/)🎜🎜🎜J'espère que cet article vous sera utile pour comprendre comment utiliser les paramètres de chemin pour effectuer des requêtes paramétrées dans FastAPI. 🎜

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