From a1a7f7207e01ebcfc66c271f36e04f45356aabf9 Mon Sep 17 00:00:00 2001 From: axel584 Date: Sun, 9 Oct 2022 10:39:19 +0200 Subject: [PATCH 01/12] first translation --- .../docs/advanced/additional-status-codes.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 docs/fr/docs/advanced/additional-status-codes.md diff --git a/docs/fr/docs/advanced/additional-status-codes.md b/docs/fr/docs/advanced/additional-status-codes.md new file mode 100644 index 0000000000000..0fcc4f14b6522 --- /dev/null +++ b/docs/fr/docs/advanced/additional-status-codes.md @@ -0,0 +1,37 @@ +# Codes de statut supplémentaires + +Par défaut, **FastAPI** renverra les réponses à l'aide d'une structure de données `JSONResponse`, en plaçant la réponse de votre *chemin d'accès* à l'intérieur de cette `JSONResponse`. + +Il utilisera le code d'état par défaut ou celui que vous avez défini dans votre *chemin d'accès*. + +## Codes d'état supplémentaires + +Si vous souhaitez renvoyer des codes d'état supplémentaires en plus du code principal, vous pouvez le faire en renvoyant directement une `Response`, comme une `JSONResponse`, et en définissant directement le code d'état supplémentaire. + +Par exemple, disons que vous voulez avoir un *chemin d'accès* qui permet de mettre à jour les éléments et renvoie les codes d'état HTTP de 200 "OK" en cas de succès. + +Mais vous voulez aussi qu'il accepte de nouveaux éléments. Et lorsque les éléments n'existaient pas auparavant, il les crée et renvoie un code d'état HTTP de 201 "Créé". + +Pour y parvenir, importez `JSONResponse` et renvoyez-y directement votre contenu, en définissant le `status_code` que vous souhaitez : + +```Python hl_lines="4 25" +{!../../../docs_src/additional_status_codes/tutorial001.py!} +``` + +!!! Attention + Lorsque vous renvoyez une `Response` directement, comme dans l'exemple ci-dessus, elle sera renvoyée directement. + + Elle ne sera pas sérialisée avec un modèle. + + Assurez-vous qu'il contient les données souhaitées et que les valeurs soient dans un format JSON valides (si vous utilisez une `JSONResponse`). + +!!! note "Détails techniques" + Vous pouvez également utiliser `from starlette.responses import JSONResponse`. + + Pour plus de commodités, **FastAPI** fournit les objets `starlette.responses` sous forme d'un alias accessible par `fastapi.responses`. Mais la plupart des réponses disponibles proviennent directement de Starlette. Il en est de même avec l'objet `statut`. + +## Documents OpenAPI et API + +Si vous renvoyez directement des codes d'état et des réponses supplémentaires, ils ne seront pas inclus dans le schéma OpenAPI (la documentation de l'API), car FastAPI n'a aucun moyen de savoir à l'avance ce que vous allez renvoyer. + +Mais vous pouvez documenter cela dans votre code, en utilisant : [Réponses supplémentaires dans OpenAPI](additional-responses.md){.internal-link target=_blank}. From 17e396de98c951569f5b359d1652feafc114f6b3 Mon Sep 17 00:00:00 2001 From: axel584 Date: Sun, 9 Oct 2022 21:58:52 +0200 Subject: [PATCH 02/12] These changes are in response to PR comments --- docs/fr/docs/advanced/additional-status-codes.md | 14 +++++++------- docs/fr/mkdocs.yml | 2 ++ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/fr/docs/advanced/additional-status-codes.md b/docs/fr/docs/advanced/additional-status-codes.md index 0fcc4f14b6522..e7b003707bf84 100644 --- a/docs/fr/docs/advanced/additional-status-codes.md +++ b/docs/fr/docs/advanced/additional-status-codes.md @@ -1,16 +1,16 @@ -# Codes de statut supplémentaires +# Codes HTTP supplémentaires Par défaut, **FastAPI** renverra les réponses à l'aide d'une structure de données `JSONResponse`, en plaçant la réponse de votre *chemin d'accès* à l'intérieur de cette `JSONResponse`. -Il utilisera le code d'état par défaut ou celui que vous avez défini dans votre *chemin d'accès*. +Il utilisera le code HTTP par défaut ou celui que vous avez défini dans votre *chemin d'accès*. -## Codes d'état supplémentaires +## Codes HTTP supplémentaires -Si vous souhaitez renvoyer des codes d'état supplémentaires en plus du code principal, vous pouvez le faire en renvoyant directement une `Response`, comme une `JSONResponse`, et en définissant directement le code d'état supplémentaire. +Si vous souhaitez renvoyer des codes HTTP supplémentaires en plus du code principal, vous pouvez le faire en renvoyant directement une `Response`, comme une `JSONResponse`, et en définissant directement le code HTTP supplémentaire. -Par exemple, disons que vous voulez avoir un *chemin d'accès* qui permet de mettre à jour les éléments et renvoie les codes d'état HTTP de 200 "OK" en cas de succès. +Par exemple, disons que vous voulez avoir un *chemin d'accès* qui permet de mettre à jour les éléments et renvoie les codes HTTP 200 "OK" en cas de succès. -Mais vous voulez aussi qu'il accepte de nouveaux éléments. Et lorsque les éléments n'existaient pas auparavant, il les crée et renvoie un code d'état HTTP de 201 "Créé". +Mais vous voulez aussi qu'il accepte de nouveaux éléments. Et lorsque les éléments n'existaient pas auparavant, il les crée et renvoie un code HTTP de 201 "Créé". Pour y parvenir, importez `JSONResponse` et renvoyez-y directement votre contenu, en définissant le `status_code` que vous souhaitez : @@ -32,6 +32,6 @@ Pour y parvenir, importez `JSONResponse` et renvoyez-y directement votre contenu ## Documents OpenAPI et API -Si vous renvoyez directement des codes d'état et des réponses supplémentaires, ils ne seront pas inclus dans le schéma OpenAPI (la documentation de l'API), car FastAPI n'a aucun moyen de savoir à l'avance ce que vous allez renvoyer. +Si vous renvoyez directement des codes HTTP et des réponses supplémentaires, ils ne seront pas inclus dans le schéma OpenAPI (la documentation de l'API), car FastAPI n'a aucun moyen de savoir à l'avance ce que vous allez renvoyer. Mais vous pouvez documenter cela dans votre code, en utilisant : [Réponses supplémentaires dans OpenAPI](additional-responses.md){.internal-link target=_blank}. diff --git a/docs/fr/mkdocs.yml b/docs/fr/mkdocs.yml index 6bed7be73853e..ff624f85548bf 100644 --- a/docs/fr/mkdocs.yml +++ b/docs/fr/mkdocs.yml @@ -67,6 +67,8 @@ nav: - tutorial/query-params.md - tutorial/body.md - tutorial/background-tasks.md +- Guide utilisateur avancé: + - advanced/additional-status-codes.md - async.md - Déploiement: - deployment/index.md From 8658e0a723cd2861099851743ffbeee26664913b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 9 Oct 2022 19:59:38 +0000 Subject: [PATCH 03/12] =?UTF-8?q?=F0=9F=8E=A8=20[pre-commit.ci]=20Auto=20f?= =?UTF-8?q?ormat=20from=20pre-commit.com=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/fr/mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/fr/mkdocs.yml b/docs/fr/mkdocs.yml index ff624f85548bf..1e37c8cbe5cc2 100644 --- a/docs/fr/mkdocs.yml +++ b/docs/fr/mkdocs.yml @@ -68,7 +68,7 @@ nav: - tutorial/body.md - tutorial/background-tasks.md - Guide utilisateur avancé: - - advanced/additional-status-codes.md + - advanced/additional-status-codes.md - async.md - Déploiement: - deployment/index.md From f0f2599fb6be0903267de8a9474a692ce5607d06 Mon Sep 17 00:00:00 2001 From: axel584 Date: Wed, 12 Oct 2022 10:19:38 +0200 Subject: [PATCH 04/12] Add French translation for `docs/fr/docs/advanced/additional-responses.md` --- docs/fr/docs/advanced/additional-responses.md | 240 ++++++++++++++++++ docs/fr/mkdocs.yml | 3 +- 2 files changed, 242 insertions(+), 1 deletion(-) create mode 100644 docs/fr/docs/advanced/additional-responses.md diff --git a/docs/fr/docs/advanced/additional-responses.md b/docs/fr/docs/advanced/additional-responses.md new file mode 100644 index 0000000000000..681272aaa6181 --- /dev/null +++ b/docs/fr/docs/advanced/additional-responses.md @@ -0,0 +1,240 @@ +# Réponses supplémentaires dans OpenAPI + +!!! Attention + C'est un sujet assez avancé. + + Si vous commencez avec **FastAPI**, vous n'en aurez peut-être pas besoin. + +Vous pouvez déclarer des réponses supplémentaires, avec des codes de statut supplémentaires, des types de médias, des descriptions, etc. + +Ces réponses supplémentaires seront incluses dans le schéma OpenAPI, elles apparaîtront donc également dans la documentation de l'API. + +Mais pour ces réponses supplémentaires, vous devez vous assurer de renvoyer directement une `Response` comme `JSONResponse`, avec votre code HTTP et votre contenu. + +## Réponse supplémentaire avec `model` + +Vous pouvez ajouter à votre *décorateur de paramètre de chemin* un paramètre `responses`. + +Il prend comme valeur un `dict` dont les clés sont des codes HTTP pour chaque réponse, comme `200`, et la valeur de ces clefs sont d'autres `dict` avec des informations pour chacun d'eux. + +Chacun de ces `dict` de réponse peut avoir une clé `model`, contenant un modèle Pydantic, tout comme `response_model`. + +**FastAPI** prendra ce modèle, générera son schéma JSON et l'inclura au bon endroit dans OpenAPI. + +Par exemple, pour déclarer une autre réponse avec un code de statut `404` et un modèle Pydantic `Message`, vous pouvez écrire : + +```Python hl_lines="18 22" +{!../../../docs_src/additional_responses/tutorial001.py!} +``` + +!!! Remarque + Gardez à l'esprit que vous devez renvoyer directement `JSONResponse`. + +!!! Info + La clé `model` ne fait pas partie d'OpenAPI. + + **FastAPI** prendra le modèle Pydantic à partir de là, générera le `JSON Schema` et le placera au bon endroit. + + Le bon endroit est : + + * Dans la clé `content`, qui a pour valeur un autre objet JSON (`dict`) qui contient : + * Une clé avec le type de support, par ex. `application/json`, qui contient comme valeur un autre objet JSON, qui contient : + * Une clé `schema`, qui a pour valeur le schéma JSON du modèle, voici le bon endroit. + * **FastAPI** ajoute ici une référence aux schémas JSON globaux à un autre endroit de votre OpenAPI au lieu de l'inclure directement. De cette façon, d'autres applications et clients peuvent utiliser ces schémas JSON directement, fournir de meilleurs outils de génération de code, etc. + +Les réponses générées au format OpenAPI pour cette *opération de chemin* seront : + +```JSON hl_lines="3-12" +{ + "responses": { + "404": { + "description": "Réponse supplémentaire", + "content": { + "application/json": { + "schema": { + "$ref": "#/composants/schémas/Message" + } + } + } + }, + "200": { + "description": "Réponse réussie", + "content": { + "application/json": { + "schema": { + "$ref": "#/composants/schémas/article" + } + } + } + }, + "422": { + "description": "Erreur de validation", + "content": { + "application/json": { + "schema": { + "$ref": "#/composants/schémas/HTTPValidationError" + } + } + } + } + } +} +``` + +Les schémas sont référencés à un autre endroit du modèle OpenAPI : + +```JSON hl_lines="4-16" +{ + "components": { + "schemas": { + "Message": { + "title": "Message", + "required": [ + "message" + ], + "type": "objet", + "Propriétés": { + "message": { + "title": "Message", + "type": "chaîne" + } + } + }, + "Article": { + "title": "Article", + "required": [ + "identifiant", + "évaluer" + ], + "type": "objet", + "properties": { + "identifiant": { + "title": "Identifiant", + "type": "chaîne" + }, + "value": { + "title": "Valeur", + "type": "chaîne" + } + } + }, + "Erreur de validation": { + "title": "Erreur de validation", + "required": [ + "loc", + "messages", + "taper" + ], + "type": "objet", + "properties": { + "loc": { + "title": "Emplacement", + "type": "tableau", + "items": { + "type": "chaîne" + } + }, + "message": { + "titre": "Message", + "type": "chaîne" + }, + "taper": { + "title": "Type d'erreur", + "type": "chaîne" + } + } + }, + "Erreur de validation HTTP": { + "title": "Erreur de validation HTTP", + "type": "objet", + "properties": { + "detail": { + "title": "Détail", + "type": "tableau", + "items": { + "$ref": "#/composants/schémas/ValidationError" + } + } + } + } + } + } +} +``` + +## Types de médias supplémentaires pour la réponse principale + +Vous pouvez utiliser ce même paramètre `responses` pour ajouter différents types de médias pour la même réponse principale. + +Par exemple, vous pouvez ajouter un type de média supplémentaire `image/png`, en déclarant que votre *opération de chemin* peut renvoyer un objet JSON (avec le type de média `application/json`) ou une image PNG : + +```Python hl_lines="19-24 28" +{!../../../docs_src/additional_responses/tutorial002.py!} +``` + +!!! Remarque + Notez que vous devez retourner l'image en utilisant directement un `FileResponse`. + +!!! Info + À moins que vous ne spécifiiez explicitement un type de média différent dans votre paramètre `responses`, FastAPI supposera que la réponse a le même type de média que la classe de réponse principale (par défaut `application/json`). + + Mais si vous avez spécifié une classe de réponse personnalisée avec "None" comme type de média, FastAPI utilisera "application/json" pour toute réponse supplémentaire associée à un modèle. + +## Combinaison d'informations + +Vous pouvez également combiner des informations de réponse provenant de plusieurs endroits, y compris les paramètres `response_model`, `status_code` et `responses`. + +Vous pouvez déclarer un `response_model`, en utilisant le code d'état par défaut `200` (ou un code personnalisé si vous en avez besoin), puis déclarer des informations supplémentaires pour cette même réponse dans `responses`, directement dans le schéma OpenAPI. + +**FastAPI** conservera les informations supplémentaires des "réponses" et les combinera avec le schéma JSON de votre modèle. + +Par exemple, vous pouvez déclarer une réponse avec un code d'état "404" qui utilise un modèle Pydantic et a une "description" personnalisée. + +Et une réponse avec un code d'état "200" qui utilise votre "response_model", mais inclut un "exemple" personnalisé : + +```Python hl_lines="20-31" +{!../../../docs_src/additional_responses/tutorial003.py!} +``` + +Tout sera combiné et inclus dans votre OpenAPI, et affiché dans la documentation de l'API : + + + +## Combinez les réponses prédéfinies et les réponses personnalisées + +Vous voulez peut-être avoir des réponses prédéfinies qui s'appliquent à de nombreux *paramètre de chemin*, mais vous souhaitez les combiner avec des réponses personnalisées nécessaires à chaque *opération de chemin*. + +Dans ces cas, vous pouvez utiliser la technique Python "d'affection par décomposition" d'un `dict` avec `**dict_to_unpack` : + +``` Python +old_dict = { + "ancienne clé": "ancienne valeur", + "deuxième ancienne clé": "deuxième ancienne valeur", +} +new_dict = {**old_dict, "nouvelle clé": "nouvelle valeur"} +``` + +Ici, `new_dict` contiendra toutes les paires clé-valeur de `old_dict` plus la nouvelle paire clé-valeur : + +``` Python +{ + "ancienne clé": "ancienne valeur", + "deuxième ancienne clé": "deuxième ancienne valeur", + "nouvelle clé": "nouvelle valeur", +} +``` + +Vous pouvez utiliser cette technique pour réutiliser certaines réponses prédéfinies dans vos *paramètres de chemin* et les combiner avec des réponses personnalisées supplémentaires. + +Par exemple: + +```Python hl_lines="13-17 26" +{!../../../docs_src/additional_responses/tutorial004.py!} +``` + +## Plus d'informations sur les réponses OpenAPI + +Pour voir exactement ce que vous pouvez inclure dans les réponses, vous pouvez consulter ces sections dans la spécification OpenAPI : + +* Objet de réponses OpenAPI , il inclut le `Response Object`. +* Objet de réponse OpenAPI , vous pouvez inclure n'importe quoi directement dans chaque réponse à l'intérieur de votre paramètre `responses`. Y compris `description`, `headers`, `content` (à l'intérieur de cela, vous déclarez différents types de médias et schémas JSON) et `links`. \ No newline at end of file diff --git a/docs/fr/mkdocs.yml b/docs/fr/mkdocs.yml index 1e37c8cbe5cc2..fd12445e29591 100644 --- a/docs/fr/mkdocs.yml +++ b/docs/fr/mkdocs.yml @@ -68,7 +68,8 @@ nav: - tutorial/body.md - tutorial/background-tasks.md - Guide utilisateur avancé: - - advanced/additional-status-codes.md + - advanced/additional-status-codes.md + - advanced/additional-responses.md - async.md - Déploiement: - deployment/index.md From aeb624383886612e9d3342f489d5893d0012dd76 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 12 Oct 2022 08:20:20 +0000 Subject: [PATCH 05/12] =?UTF-8?q?=F0=9F=8E=A8=20[pre-commit.ci]=20Auto=20f?= =?UTF-8?q?ormat=20from=20pre-commit.com=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/fr/docs/advanced/additional-responses.md | 2 +- docs/fr/mkdocs.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/fr/docs/advanced/additional-responses.md b/docs/fr/docs/advanced/additional-responses.md index 681272aaa6181..0f4bf68f202b3 100644 --- a/docs/fr/docs/advanced/additional-responses.md +++ b/docs/fr/docs/advanced/additional-responses.md @@ -237,4 +237,4 @@ Par exemple: Pour voir exactement ce que vous pouvez inclure dans les réponses, vous pouvez consulter ces sections dans la spécification OpenAPI : * Objet de réponses OpenAPI , il inclut le `Response Object`. -* Objet de réponse OpenAPI , vous pouvez inclure n'importe quoi directement dans chaque réponse à l'intérieur de votre paramètre `responses`. Y compris `description`, `headers`, `content` (à l'intérieur de cela, vous déclarez différents types de médias et schémas JSON) et `links`. \ No newline at end of file +* Objet de réponse OpenAPI , vous pouvez inclure n'importe quoi directement dans chaque réponse à l'intérieur de votre paramètre `responses`. Y compris `description`, `headers`, `content` (à l'intérieur de cela, vous déclarez différents types de médias et schémas JSON) et `links`. diff --git a/docs/fr/mkdocs.yml b/docs/fr/mkdocs.yml index fd12445e29591..d432c03c55b9b 100644 --- a/docs/fr/mkdocs.yml +++ b/docs/fr/mkdocs.yml @@ -68,7 +68,7 @@ nav: - tutorial/body.md - tutorial/background-tasks.md - Guide utilisateur avancé: - - advanced/additional-status-codes.md + - advanced/additional-status-codes.md - advanced/additional-responses.md - async.md - Déploiement: From e50e7f2eef427f9bbd93beaf5566b15e77fe175b Mon Sep 17 00:00:00 2001 From: axel584 Date: Wed, 12 Oct 2022 18:36:09 +0200 Subject: [PATCH 06/12] add some small corrections --- docs/fr/docs/advanced/additional-responses.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/fr/docs/advanced/additional-responses.md b/docs/fr/docs/advanced/additional-responses.md index 0f4bf68f202b3..6fd407b96ef67 100644 --- a/docs/fr/docs/advanced/additional-responses.md +++ b/docs/fr/docs/advanced/additional-responses.md @@ -1,11 +1,11 @@ # Réponses supplémentaires dans OpenAPI !!! Attention - C'est un sujet assez avancé. + Ceci concerne un sujet plutôt avancé. - Si vous commencez avec **FastAPI**, vous n'en aurez peut-être pas besoin. + Si vous débutez avec **FastAPI**, vous n'en aurez peut-être pas besoin. -Vous pouvez déclarer des réponses supplémentaires, avec des codes de statut supplémentaires, des types de médias, des descriptions, etc. +Vous pouvez déclarer des réponses supplémentaires, avec des codes HTTP, des types de médias, des descriptions, etc. Ces réponses supplémentaires seront incluses dans le schéma OpenAPI, elles apparaîtront donc également dans la documentation de l'API. @@ -13,15 +13,15 @@ Mais pour ces réponses supplémentaires, vous devez vous assurer de renvoyer di ## Réponse supplémentaire avec `model` -Vous pouvez ajouter à votre *décorateur de paramètre de chemin* un paramètre `responses`. +Vous pouvez ajouter à votre décorateur de *paramètre de chemin* un paramètre `responses`. -Il prend comme valeur un `dict` dont les clés sont des codes HTTP pour chaque réponse, comme `200`, et la valeur de ces clefs sont d'autres `dict` avec des informations pour chacun d'eux. +Il prend comme valeur un `dict` dont les clés sont des codes HTTP pour chaque réponse, comme `200`, et la valeur de ces clés sont d'autres `dict` avec des informations pour chacun d'eux. Chacun de ces `dict` de réponse peut avoir une clé `model`, contenant un modèle Pydantic, tout comme `response_model`. **FastAPI** prendra ce modèle, générera son schéma JSON et l'inclura au bon endroit dans OpenAPI. -Par exemple, pour déclarer une autre réponse avec un code de statut `404` et un modèle Pydantic `Message`, vous pouvez écrire : +Par exemple, pour déclarer une autre réponse avec un code HTTP `404` et un modèle Pydantic `Message`, vous pouvez écrire : ```Python hl_lines="18 22" {!../../../docs_src/additional_responses/tutorial001.py!} @@ -178,19 +178,19 @@ Par exemple, vous pouvez ajouter un type de média supplémentaire `image/png`, !!! Info À moins que vous ne spécifiiez explicitement un type de média différent dans votre paramètre `responses`, FastAPI supposera que la réponse a le même type de média que la classe de réponse principale (par défaut `application/json`). - Mais si vous avez spécifié une classe de réponse personnalisée avec "None" comme type de média, FastAPI utilisera "application/json" pour toute réponse supplémentaire associée à un modèle. + Mais si vous avez spécifié une classe de réponse personnalisée avec `None` comme type de média, FastAPI utilisera `application/json` pour toute réponse supplémentaire associée à un modèle. ## Combinaison d'informations Vous pouvez également combiner des informations de réponse provenant de plusieurs endroits, y compris les paramètres `response_model`, `status_code` et `responses`. -Vous pouvez déclarer un `response_model`, en utilisant le code d'état par défaut `200` (ou un code personnalisé si vous en avez besoin), puis déclarer des informations supplémentaires pour cette même réponse dans `responses`, directement dans le schéma OpenAPI. +Vous pouvez déclarer un `response_model`, en utilisant le code HTTP par défaut `200` (ou un code personnalisé si vous en avez besoin), puis déclarer des informations supplémentaires pour cette même réponse dans `responses`, directement dans le schéma OpenAPI. -**FastAPI** conservera les informations supplémentaires des "réponses" et les combinera avec le schéma JSON de votre modèle. +**FastAPI** conservera les informations supplémentaires des `responses` et les combinera avec le schéma JSON de votre modèle. -Par exemple, vous pouvez déclarer une réponse avec un code d'état "404" qui utilise un modèle Pydantic et a une "description" personnalisée. +Par exemple, vous pouvez déclarer une réponse avec un code HTTP "404" qui utilise un modèle Pydantic et a une "description" personnalisée. -Et une réponse avec un code d'état "200" qui utilise votre "response_model", mais inclut un "exemple" personnalisé : +Et une réponse avec un code HTTP "200" qui utilise votre "response_model", mais inclut un "exemple" personnalisé : ```Python hl_lines="20-31" {!../../../docs_src/additional_responses/tutorial003.py!} @@ -237,4 +237,4 @@ Par exemple: Pour voir exactement ce que vous pouvez inclure dans les réponses, vous pouvez consulter ces sections dans la spécification OpenAPI : * Objet de réponses OpenAPI , il inclut le `Response Object`. -* Objet de réponse OpenAPI , vous pouvez inclure n'importe quoi directement dans chaque réponse à l'intérieur de votre paramètre `responses`. Y compris `description`, `headers`, `content` (à l'intérieur de cela, vous déclarez différents types de médias et schémas JSON) et `links`. +* Objet de réponse OpenAPI , vous pouvez inclure n'importe quoi directement dans chaque réponse à l'intérieur de votre paramètre `responses`. Y compris `description`, `headers`, `content` (à l'intérieur de cela, vous déclarez différents types de médias et schémas JSON) et `links`. From a94bfa5d40f3b1a466da4890bcee18e3eba271de Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 12 Oct 2022 16:36:56 +0000 Subject: [PATCH 07/12] =?UTF-8?q?=F0=9F=8E=A8=20[pre-commit.ci]=20Auto=20f?= =?UTF-8?q?ormat=20from=20pre-commit.com=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/fr/docs/advanced/additional-responses.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/fr/docs/advanced/additional-responses.md b/docs/fr/docs/advanced/additional-responses.md index 6fd407b96ef67..4774ae47c17cd 100644 --- a/docs/fr/docs/advanced/additional-responses.md +++ b/docs/fr/docs/advanced/additional-responses.md @@ -237,4 +237,4 @@ Par exemple: Pour voir exactement ce que vous pouvez inclure dans les réponses, vous pouvez consulter ces sections dans la spécification OpenAPI : * Objet de réponses OpenAPI , il inclut le `Response Object`. -* Objet de réponse OpenAPI , vous pouvez inclure n'importe quoi directement dans chaque réponse à l'intérieur de votre paramètre `responses`. Y compris `description`, `headers`, `content` (à l'intérieur de cela, vous déclarez différents types de médias et schémas JSON) et `links`. +* Objet de réponse OpenAPI , vous pouvez inclure n'importe quoi directement dans chaque réponse à l'intérieur de votre paramètre `responses`. Y compris `description`, `headers`, `content` (à l'intérieur de cela, vous déclarez différents types de médias et schémas JSON) et `links`. From 682105356929e92ec38fbbb11fb9a342b7f55f48 Mon Sep 17 00:00:00 2001 From: axel584 Date: Wed, 12 Oct 2022 18:59:08 +0200 Subject: [PATCH 08/12] Update additional-responses.md --- docs/fr/docs/advanced/additional-responses.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/fr/docs/advanced/additional-responses.md b/docs/fr/docs/advanced/additional-responses.md index 4774ae47c17cd..f0935651f0b5a 100644 --- a/docs/fr/docs/advanced/additional-responses.md +++ b/docs/fr/docs/advanced/additional-responses.md @@ -188,9 +188,9 @@ Vous pouvez déclarer un `response_model`, en utilisant le code HTTP par défaut **FastAPI** conservera les informations supplémentaires des `responses` et les combinera avec le schéma JSON de votre modèle. -Par exemple, vous pouvez déclarer une réponse avec un code HTTP "404" qui utilise un modèle Pydantic et a une "description" personnalisée. +Par exemple, vous pouvez déclarer une réponse avec un code HTTP `404` qui utilise un modèle Pydantic et a une `description` personnalisée. -Et une réponse avec un code HTTP "200" qui utilise votre "response_model", mais inclut un "exemple" personnalisé : +Et une réponse avec un code HTTP `200` qui utilise votre `response_model`, mais inclut un `example` personnalisé : ```Python hl_lines="20-31" {!../../../docs_src/additional_responses/tutorial003.py!} @@ -237,4 +237,4 @@ Par exemple: Pour voir exactement ce que vous pouvez inclure dans les réponses, vous pouvez consulter ces sections dans la spécification OpenAPI : * Objet de réponses OpenAPI , il inclut le `Response Object`. -* Objet de réponse OpenAPI , vous pouvez inclure n'importe quoi directement dans chaque réponse à l'intérieur de votre paramètre `responses`. Y compris `description`, `headers`, `content` (à l'intérieur de cela, vous déclarez différents types de médias et schémas JSON) et `links`. +* Objet de réponse OpenAPI , vous pouvez inclure n'importe quoi directement dans chaque réponse à l'intérieur de votre paramètre `responses`. Y compris `description`, `headers`, `content` (à l'intérieur de cela, vous déclarez différents types de médias et schémas JSON) et `links`. From 9efb26ab75d2a3c517f92c95f068250928e856bd Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 12 Oct 2022 16:59:57 +0000 Subject: [PATCH 09/12] =?UTF-8?q?=F0=9F=8E=A8=20[pre-commit.ci]=20Auto=20f?= =?UTF-8?q?ormat=20from=20pre-commit.com=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/fr/docs/advanced/additional-responses.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/fr/docs/advanced/additional-responses.md b/docs/fr/docs/advanced/additional-responses.md index f0935651f0b5a..981734817e9b3 100644 --- a/docs/fr/docs/advanced/additional-responses.md +++ b/docs/fr/docs/advanced/additional-responses.md @@ -237,4 +237,4 @@ Par exemple: Pour voir exactement ce que vous pouvez inclure dans les réponses, vous pouvez consulter ces sections dans la spécification OpenAPI : * Objet de réponses OpenAPI , il inclut le `Response Object`. -* Objet de réponse OpenAPI , vous pouvez inclure n'importe quoi directement dans chaque réponse à l'intérieur de votre paramètre `responses`. Y compris `description`, `headers`, `content` (à l'intérieur de cela, vous déclarez différents types de médias et schémas JSON) et `links`. +* Objet de réponse OpenAPI , vous pouvez inclure n'importe quoi directement dans chaque réponse à l'intérieur de votre paramètre `responses`. Y compris `description`, `headers`, `content` (à l'intérieur de cela, vous déclarez différents types de médias et schémas JSON) et `links`. From 685ba9e5568dd8786c2e3a006907cc0f983d5364 Mon Sep 17 00:00:00 2001 From: axel584 Date: Sat, 15 Oct 2022 08:06:36 +0200 Subject: [PATCH 10/12] Update docs/fr/docs/advanced/additional-responses.md Co-authored-by: Julian Maurin --- docs/fr/docs/advanced/additional-responses.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/fr/docs/advanced/additional-responses.md b/docs/fr/docs/advanced/additional-responses.md index 981734817e9b3..a6bafafd6e654 100644 --- a/docs/fr/docs/advanced/additional-responses.md +++ b/docs/fr/docs/advanced/additional-responses.md @@ -52,7 +52,7 @@ Les réponses générées au format OpenAPI pour cette *opération de chemin* se "content": { "application/json": { "schema": { - "$ref": "#/composants/schémas/Message" + "$ref": "#/components/schemas/Message" } } } From 26deb294ab332b9eed882393936e086e263f9837 Mon Sep 17 00:00:00 2001 From: axel584 Date: Sat, 15 Oct 2022 08:06:53 +0200 Subject: [PATCH 11/12] Update docs/fr/docs/advanced/additional-responses.md Co-authored-by: Julian Maurin --- docs/fr/docs/advanced/additional-responses.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/fr/docs/advanced/additional-responses.md b/docs/fr/docs/advanced/additional-responses.md index a6bafafd6e654..25e99208ab391 100644 --- a/docs/fr/docs/advanced/additional-responses.md +++ b/docs/fr/docs/advanced/additional-responses.md @@ -236,5 +236,5 @@ Par exemple: Pour voir exactement ce que vous pouvez inclure dans les réponses, vous pouvez consulter ces sections dans la spécification OpenAPI : -* Objet de réponses OpenAPI , il inclut le `Response Object`. -* Objet de réponse OpenAPI , vous pouvez inclure n'importe quoi directement dans chaque réponse à l'intérieur de votre paramètre `responses`. Y compris `description`, `headers`, `content` (à l'intérieur de cela, vous déclarez différents types de médias et schémas JSON) et `links`. +* Objet Responses de OpenAPI , il inclut le `Response Object`. +* Objet Response de OpenAPI , vous pouvez inclure n'importe quoi directement dans chaque réponse à l'intérieur de votre paramètre `responses`. Y compris `description`, `headers`, `content` (à l'intérieur de cela, vous déclarez différents types de médias et schémas JSON) et `links`. From e05d84f17515c03474ec7094b6a8378959280b91 Mon Sep 17 00:00:00 2001 From: axel584 Date: Sun, 16 Oct 2022 20:34:57 +0200 Subject: [PATCH 12/12] small corrections from the suggestion of @JulianMaurin (thanks) --- docs/fr/docs/advanced/additional-responses.md | 90 +++++++++---------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/docs/fr/docs/advanced/additional-responses.md b/docs/fr/docs/advanced/additional-responses.md index 25e99208ab391..35b57594d5975 100644 --- a/docs/fr/docs/advanced/additional-responses.md +++ b/docs/fr/docs/advanced/additional-responses.md @@ -48,7 +48,7 @@ Les réponses générées au format OpenAPI pour cette *opération de chemin* se { "responses": { "404": { - "description": "Réponse supplémentaire", + "description": "Additional Response", "content": { "application/json": { "schema": { @@ -58,21 +58,21 @@ Les réponses générées au format OpenAPI pour cette *opération de chemin* se } }, "200": { - "description": "Réponse réussie", + "description": "Successful Response", "content": { "application/json": { "schema": { - "$ref": "#/composants/schémas/article" + "$ref": "#/components/schemas/Item" } } } }, "422": { - "description": "Erreur de validation", + "description": "Validation Error", "content": { "application/json": { "schema": { - "$ref": "#/composants/schémas/HTTPValidationError" + "$ref": "#/components/schemas/HTTPValidationError" } } } @@ -92,67 +92,67 @@ Les schémas sont référencés à un autre endroit du modèle OpenAPI : "required": [ "message" ], - "type": "objet", - "Propriétés": { + "type": "object", + "properties": { "message": { "title": "Message", - "type": "chaîne" + "type": "string" } } }, - "Article": { - "title": "Article", + "Item": { + "title": "Item", "required": [ - "identifiant", - "évaluer" + "id", + "value" ], - "type": "objet", + "type": "object", "properties": { - "identifiant": { - "title": "Identifiant", - "type": "chaîne" + "id": { + "title": "Id", + "type": "string" }, "value": { - "title": "Valeur", - "type": "chaîne" + "title": "Value", + "type": "string" } } }, - "Erreur de validation": { - "title": "Erreur de validation", + "ValidationError": { + "title": "ValidationError", "required": [ "loc", - "messages", - "taper" + "msg", + "type" ], - "type": "objet", + "type": "object", "properties": { "loc": { - "title": "Emplacement", - "type": "tableau", + "title": "Location", + "type": "array", "items": { - "type": "chaîne" + "type": "string" } }, - "message": { - "titre": "Message", - "type": "chaîne" + "msg": { + "title": "Message", + "type": "string" }, - "taper": { - "title": "Type d'erreur", - "type": "chaîne" + "type": { + "title": "Error Type", + "type": "string" } } }, - "Erreur de validation HTTP": { - "title": "Erreur de validation HTTP", - "type": "objet", + "HTTPValidationError": { + "title": "HTTPValidationError", + "type": "object", "properties": { "detail": { - "title": "Détail", - "type": "tableau", + "title": "Detail", + "type": "array", "items": { - "$ref": "#/composants/schémas/ValidationError" + "$ref": "#/components/schemas/ValidationError" } } } @@ -204,23 +204,23 @@ Tout sera combiné et inclus dans votre OpenAPI, et affiché dans la documentati Vous voulez peut-être avoir des réponses prédéfinies qui s'appliquent à de nombreux *paramètre de chemin*, mais vous souhaitez les combiner avec des réponses personnalisées nécessaires à chaque *opération de chemin*. -Dans ces cas, vous pouvez utiliser la technique Python "d'affection par décomposition" d'un `dict` avec `**dict_to_unpack` : +Dans ces cas, vous pouvez utiliser la technique Python "d'affection par décomposition" (appelé _unpacking_ en anglais) d'un `dict` avec `**dict_to_unpack` : ``` Python old_dict = { - "ancienne clé": "ancienne valeur", - "deuxième ancienne clé": "deuxième ancienne valeur", + "old key": "old value", + "second old key": "second old value", } -new_dict = {**old_dict, "nouvelle clé": "nouvelle valeur"} +new_dict = {**old_dict, "new key": "new value"} ``` Ici, `new_dict` contiendra toutes les paires clé-valeur de `old_dict` plus la nouvelle paire clé-valeur : ``` Python { - "ancienne clé": "ancienne valeur", - "deuxième ancienne clé": "deuxième ancienne valeur", - "nouvelle clé": "nouvelle valeur", + "old key": "old value", + "second old key": "second old value", + "new key": "new value", } ```