@@ -12,19 +12,15 @@ Dans OpenAPI, les chemins sont des ressources, tels que /users/ ou /items/, expo
12
12
13
13
Vous devez vous assurer qu'il est unique pour chaque opération.
14
14
15
- ``` Python hl_lines="6"
16
- {!../ ../ docs_src/ path_operation_advanced_configuration/ tutorial001.py!}
17
- ```
15
+ {* ../../docs_src/path_operation_advanced_configuration/tutorial001.py hl[ 6] * }
18
16
19
17
### Utilisation du nom * path operation function* comme operationId
20
18
21
19
Si vous souhaitez utiliser les noms de fonction de vos API comme ` operationId ` , vous pouvez les parcourir tous et remplacer chaque ` operation_id ` de l'* opération de chemin* en utilisant leur ` APIRoute.name ` .
22
20
23
21
Vous devriez le faire après avoir ajouté toutes vos * paramètres de chemin* .
24
22
25
- ``` Python hl_lines="2 12-21 24"
26
- {!../ ../ docs_src/ path_operation_advanced_configuration/ tutorial002.py!}
27
- ```
23
+ {* ../../docs_src/path_operation_advanced_configuration/tutorial002.py hl[ 2,12:21,24] * }
28
24
29
25
/// tip | "Astuce"
30
26
@@ -44,9 +40,7 @@ Même s'ils se trouvent dans des modules différents (fichiers Python).
44
40
45
41
Pour exclure un * chemin* du schéma OpenAPI généré (et donc des systèmes de documentation automatiques), utilisez le paramètre ` include_in_schema ` et assignez-lui la valeur ` False `  :
46
42
47
- ``` Python hl_lines="6"
48
- {!../ ../ docs_src/ path_operation_advanced_configuration/ tutorial003.py!}
49
- ```
43
+ {* ../../docs_src/path_operation_advanced_configuration/tutorial003.py hl[ 6] * }
50
44
51
45
## Description avancée de docstring
52
46
@@ -56,9 +50,7 @@ L'ajout d'un `\f` (un caractère d'échappement "form feed") va permettre à **F
56
50
57
51
Il n'apparaîtra pas dans la documentation, mais d'autres outils (tel que Sphinx) pourront utiliser le reste.
58
52
59
- ``` Python hl_lines="19-29"
60
- {!../ ../ docs_src/ path_operation_advanced_configuration/ tutorial004.py!}
61
- ```
53
+ {* ../../docs_src/path_operation_advanced_configuration/tutorial004.py hl[ 19:29] * }
62
54
63
55
## Réponses supplémentaires
64
56
@@ -98,9 +90,7 @@ Vous pouvez étendre le schéma OpenAPI pour une *opération de chemin* en utili
98
90
99
91
Cet ` openapi_extra ` peut être utile, par exemple, pour déclarer [ OpenAPI Extensions] ( https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#specificationExtensions )  :
100
92
101
- ``` Python hl_lines="6"
102
- {!../ ../ docs_src/ path_operation_advanced_configuration/ tutorial005.py!}
103
- ```
93
+ {* ../../docs_src/path_operation_advanced_configuration/tutorial005.py hl[ 6] * }
104
94
105
95
Si vous ouvrez la documentation automatique de l'API, votre extension apparaîtra au bas du * chemin* spécifique.
106
96
@@ -147,9 +137,7 @@ Par exemple, vous pouvez décider de lire et de valider la requête avec votre p
147
137
148
138
Vous pouvez le faire avec ` openapi_extra ` Â :
149
139
150
- ``` Python hl_lines="20-37 39-40"
151
- {!../ ../ docs_src/ path_operation_advanced_configuration/ tutorial006.py !}
152
- ```
140
+ {* ../../docs_src/path_operation_advanced_configuration/tutorial006.py hl[ 20:37,39:40] * }
153
141
154
142
Dans cet exemple, nous n'avons déclaré aucun modèle Pydantic. En fait, le corps de la requête n'est même pas <abbr title =" converti d'un format simple, comme des octets, en objets Python " >parsé</abbr > en tant que JSON, il est lu directement en tant que ` bytes ` , et la fonction ` magic_data_reader() ` serait chargé de l'analyser d'une manière ou d'une autre.
155
143
@@ -163,19 +151,15 @@ Et vous pouvez le faire même si le type de données dans la requête n'est pas
163
151
164
152
Dans cet exemple, nous n'utilisons pas les fonctionnalités de FastAPI pour extraire le schéma JSON des modèles Pydantic ni la validation automatique pour JSON. En fait, nous déclarons le type de contenu de la requête en tant que YAML, et non JSON :
165
153
166
- ``` Python hl_lines="17-22 24"
167
- {!../ ../ docs_src/ path_operation_advanced_configuration/ tutorial007.py!}
168
- ```
154
+ {* ../../docs_src/path_operation_advanced_configuration/tutorial007.py hl[ 17:22,24] * }
169
155
170
156
Néanmoins, bien que nous n'utilisions pas la fonctionnalité par défaut, nous utilisons toujours un modèle Pydantic pour générer manuellement le schéma JSON pour les données que nous souhaitons recevoir en YAML.
171
157
172
158
Ensuite, nous utilisons directement la requĂŞte et extrayons son contenu en tant qu'octets. Cela signifie que FastAPI n'essaiera mĂŞme pas d'analyser le payload de la requĂŞte en tant que JSON.
173
159
174
160
Et nous analysons directement ce contenu YAML, puis nous utilisons à nouveau le même modèle Pydantic pour valider le contenu YAML :
175
161
176
- ``` Python hl_lines="26-33"
177
- {!../ ../ docs_src/ path_operation_advanced_configuration/ tutorial007.py!}
178
- ```
162
+ {* ../../docs_src/path_operation_advanced_configuration/tutorial007.py hl[ 26:33] * }
179
163
180
164
/// tip | "Astuce"
181
165
0 commit comments