From 97fa20295711fa8a05b35ac696ca9a0657992e84 Mon Sep 17 00:00:00 2001 From: Lucas Mendes Date: Fri, 29 Oct 2021 15:38:16 -0300 Subject: [PATCH 01/25] Translate to PT body-multiple-params.md --- docs/pt/docs/tutorial/body-multiple-params.md | 170 ++++++++++++++++++ docs/pt/mkdocs.yml | 1 + 2 files changed, 171 insertions(+) create mode 100644 docs/pt/docs/tutorial/body-multiple-params.md diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md new file mode 100644 index 0000000000000..7f4bd66e7c3e4 --- /dev/null +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -0,0 +1,170 @@ +# Corpo - Múltiplos parâmetros + +Agora que nós vimos como usar `Path` e `Query`, vamos ver usos mais avançados de declarações para uso no corpo da requisição. + +## Misture `Path`, `Query` e parâmetros de corpo + +Primeiro, é claro, você pode misturar `Path`, `Query` e declarações de parâmetro no corpo da requisição livremente e **FastAPI** saberá o que fazer. + +E você também pode declarar parâmetros de corpo como opcionais, definindo o valor padrão com `None`: + +```Python hl_lines="19-21" +{!../../../docs_src/body_multiple_params/tutorial001.py!} +``` + +!!! nota + Repare que, neste caso, o `item` que seria capturado a partir do corpo é opcional. Visto que ele possui `None` como valor padrão. + +## Múltiplos parâmetros de corpo + +No exemplo anterior, as *operações de rota* esperariam um JSON no corpo contendo os atributos de um `Item`, exemplo: + +```JSON +{ + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2 +} +``` + +Mas você pode também declarar múltiplos parâmetros de corpo, e.g. `item` e `user`: + +```Python hl_lines="22" +{!../../../docs_src/body_multiple_params/tutorial002.py!} +``` + +Neste caso, **FastAPI** vai perceber que existe mais de um parâmetro de corpo na função (dois parâmetros que são modelos Pydantic). + +Então, ele vai usar o nome dos parâmetros como chaves (nome dos campos) no corpo, e espera um corpo como: + +```JSON +{ + "item": { + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2 + }, + "user": { + "username": "dave", + "full_name": "Dave Grohl" + } +} +``` + +!!! nota + Repare que mesmo que o `item` esteja declarado da mesma maneira que antes, agora ele é esperado esteja dentro do corpo com uma chave `item`. + + +**FastAPI** vai fazer a conversão automática a partir da requisição, assim esse parâmetro `item` receberá seu respectivo conteúdo específico e o mesmo ocorre com `user`. + +Ele vai realizar a validação dos dados compostos, e vai documentá-los de maneira compatível com `OpenAPI schema` e documentação automática. + +## Valores singulares no corpo + +Assim como existem uma `Query` e uma `Path` para definir dados adicionais para parâmetros de consulta e de rota, **FastAPI** provê o equivalente para `Body`. + +Por exemplo, extendendo o modelo anterior, você poder decidir por ter uma outra chave `importance` no mesmo corpo, além de `item` e `user`. + +Se você declará-lo como é, porque é um valor singular, **FastAPI** vai assumir que se trata de um parâmetro de consulta. + +Mas você pode instruir **FastAPI** para tratá-lo como outra chave do corpo usando `Body`: + + +```Python hl_lines="23" +{!../../../docs_src/body_multiple_params/tutorial003.py!} +``` + +Neste caso, **FastAPI** vai esperar um corpo como: + + +```JSON +{ + "item": { + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2 + }, + "user": { + "username": "dave", + "full_name": "Dave Grohl" + }, + "importance": 5 +} +``` + +Mais uma vez, ele vai converter os tipos de dados, validar, documentar, etc. + +## Múltiplos parâmetros de corpo e consulta + +Obviamente, você pode também declarar parâmetros de consulta assim que você precisar, de modo adicional a quaisquer parâmetros de corpo. + +Dado que, por padrão, valores singulares são interpretados como parâmetros de consulta, você não precisa explicitamente adicionar uma `Query`, você pode somente: + +```Python +q: Optional[str] = None +``` + +como em: + +```Python hl_lines="28" +{!../../../docs_src/body_multiple_params/tutorial004.py!} +``` + +!!! info + `Body` também possui todas as validações adicionais e metadados de parâmetros como em `Query`,`Path` e outras que você verá depois. + + +## Requisite a indicação da chave para um único parâmetro de corpo + +Suponha que você tem um único `item` parâmetro de corpo a partir de um modelo Pydantic `Item`. + +Por padrão, **FastAPI** vai então esperar que seu conteúdo venha no corpo diretamente. + +Mas se você quiser que ele requisite por um JSON com uma chave `item` e dentro dele os conteúdos do modelo, como ocorre ao declarar vários parâmetros de corpo, você pode usar o parâmetro especial de `Body` chamado `embed`: + +```Python +item: Item = Body(..., embed=True) +``` + +como em: + +```Python hl_lines="17" +{!../../../docs_src/body_multiple_params/tutorial005.py!} +``` + +Neste caso **FastAPI** vai esperar um corpo como: + +```JSON hl_lines="2" +{ + "item": { + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2 + } +} +``` + +ao invés de: + +```JSON +{ + "name": "Foo", + "description": "The pretender", + "price": 42.0, + "tax": 3.2 +} +``` + +## Recapitulando + +Você pode adicionar múltiplos parâmetros de corpo para sua *função de operação de rota*, mesmo que a requisição possa ter somente um único corpo. + +E o **FastAPI** vai manipulá-los, mandar para você os dados corretos na sua função, e validar e documentar o schema correto na *operação de rota*. + +Você também pode declarar valores singulares para serem recebidos como parte do corpo. + +E você pode instruir **FastAPI** para requisitar no corpo a indicação de chave mesmo quando existe somente um parâmetro declarado. diff --git a/docs/pt/mkdocs.yml b/docs/pt/mkdocs.yml index 219f41b81c573..ff72c62d12906 100644 --- a/docs/pt/mkdocs.yml +++ b/docs/pt/mkdocs.yml @@ -61,6 +61,7 @@ nav: - tutorial/index.md - tutorial/first-steps.md - tutorial/path-params.md + - tutorial/body-multiple-params.md - tutorial/body-fields.md - Segurança: - tutorial/security/index.md From afab46aace48802ce68f4e082bdcdb65e1405a50 Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Tue, 8 Feb 2022 22:46:50 -0300 Subject: [PATCH 02/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Lorhan Sohaky --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index 7f4bd66e7c3e4..e440c40cce61c 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -1,6 +1,6 @@ # Corpo - Múltiplos parâmetros -Agora que nós vimos como usar `Path` e `Query`, vamos ver usos mais avançados de declarações para uso no corpo da requisição. +Agora que nós vimos como usar `Path` e `Query`, veremos usos mais avançados de declarações no corpo da requisição. ## Misture `Path`, `Query` e parâmetros de corpo From 8eac216c3894fb05c8edcaf4aa262dd6ea2991eb Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Tue, 8 Feb 2022 22:47:04 -0300 Subject: [PATCH 03/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Lorhan Sohaky --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index e440c40cce61c..c00a76f0b3cf3 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -28,7 +28,7 @@ No exemplo anterior, as *operações de rota* esperariam um JSON no corpo conten } ``` -Mas você pode também declarar múltiplos parâmetros de corpo, e.g. `item` e `user`: +Mas você pode também declarar múltiplos parâmetros de corpo, por exemplo, `item` e `user`: ```Python hl_lines="22" {!../../../docs_src/body_multiple_params/tutorial002.py!} From 1c8f3aef4f7cd44132f1d8d0d92e8076d88469ae Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Tue, 8 Feb 2022 22:47:47 -0300 Subject: [PATCH 04/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Lorhan Sohaky --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index c00a76f0b3cf3..e0938942b5cff 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -54,7 +54,7 @@ Então, ele vai usar o nome dos parâmetros como chaves (nome dos campos) no cor ``` !!! nota - Repare que mesmo que o `item` esteja declarado da mesma maneira que antes, agora ele é esperado esteja dentro do corpo com uma chave `item`. + Repare que mesmo que o `item` esteja declarado da mesma maneira que antes, agora é esperado que ele esteja dentro do corpo com uma chave `item`. **FastAPI** vai fazer a conversão automática a partir da requisição, assim esse parâmetro `item` receberá seu respectivo conteúdo específico e o mesmo ocorre com `user`. From 64f21dac0764a3841ec236ddc5e40132c897f066 Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Tue, 8 Feb 2022 22:48:10 -0300 Subject: [PATCH 05/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Lorhan Sohaky --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index e0938942b5cff..67bbb91e1c0c3 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -36,7 +36,7 @@ Mas você pode também declarar múltiplos parâmetros de corpo, por exemplo, `i Neste caso, **FastAPI** vai perceber que existe mais de um parâmetro de corpo na função (dois parâmetros que são modelos Pydantic). -Então, ele vai usar o nome dos parâmetros como chaves (nome dos campos) no corpo, e espera um corpo como: +Então, ele usará o nome dos parâmetros como chaves (nome dos campos) no corpo, e espera um corpo como: ```JSON { From f1a3a7d69758989e95b2175c2d14c625d300daec Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Tue, 8 Feb 2022 22:48:59 -0300 Subject: [PATCH 06/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Lorhan Sohaky --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index 67bbb91e1c0c3..5274f471b1cca 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -57,7 +57,7 @@ Então, ele usará o nome dos parâmetros como chaves (nome dos campos) no corpo Repare que mesmo que o `item` esteja declarado da mesma maneira que antes, agora é esperado que ele esteja dentro do corpo com uma chave `item`. -**FastAPI** vai fazer a conversão automática a partir da requisição, assim esse parâmetro `item` receberá seu respectivo conteúdo específico e o mesmo ocorre com `user`. +**FastAPI** vai fazer a conversão automática a partir da requisição, assim esse parâmetro `item` receberá seu respectivo conteúdo específico e o mesmo ocorrerá com `user`. Ele vai realizar a validação dos dados compostos, e vai documentá-los de maneira compatível com `OpenAPI schema` e documentação automática. From 275d42aa3ca3774304d08684baa2996bf6d479f8 Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Tue, 8 Feb 2022 22:49:50 -0300 Subject: [PATCH 07/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Lorhan Sohaky --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index 5274f471b1cca..86f5c0318c990 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -121,7 +121,7 @@ como em: Suponha que você tem um único `item` parâmetro de corpo a partir de um modelo Pydantic `Item`. -Por padrão, **FastAPI** vai então esperar que seu conteúdo venha no corpo diretamente. +Por padrão, o **FastAPI** vai então esperar que seu conteúdo venha no corpo diretamente. Mas se você quiser que ele requisite por um JSON com uma chave `item` e dentro dele os conteúdos do modelo, como ocorre ao declarar vários parâmetros de corpo, você pode usar o parâmetro especial de `Body` chamado `embed`: From f2d30066f7908878d46084dc2bd2555dc8d14fb3 Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Tue, 8 Feb 2022 22:50:03 -0300 Subject: [PATCH 08/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Lorhan Sohaky --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index 86f5c0318c990..5212010c47265 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -135,7 +135,7 @@ como em: {!../../../docs_src/body_multiple_params/tutorial005.py!} ``` -Neste caso **FastAPI** vai esperar um corpo como: +Neste caso o **FastAPI** vai esperar um corpo como: ```JSON hl_lines="2" { From c6814355cb1135e721a2c3fdce6e8676a95c9815 Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Tue, 8 Feb 2022 22:58:39 -0300 Subject: [PATCH 09/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Lorhan Sohaky --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index 5212010c47265..88a1efaaf7585 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -167,4 +167,4 @@ E o **FastAPI** vai manipulá-los, mandar para você os dados corretos na sua fu Você também pode declarar valores singulares para serem recebidos como parte do corpo. -E você pode instruir **FastAPI** para requisitar no corpo a indicação de chave mesmo quando existe somente um parâmetro declarado. +E você pode instruir o **FastAPI** para requisitar no corpo a indicação de chave mesmo quando existe somente um único parâmetro declarado. From dc63e15b1333d90b6f07bd885a2127957b84c17e Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Tue, 8 Feb 2022 23:29:47 -0300 Subject: [PATCH 10/25] Update body-multiple-params.md --- docs/pt/docs/tutorial/body-multiple-params.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index 88a1efaaf7585..e02053318e903 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -113,11 +113,11 @@ como em: {!../../../docs_src/body_multiple_params/tutorial004.py!} ``` -!!! info +!!! info "Informação" `Body` também possui todas as validações adicionais e metadados de parâmetros como em `Query`,`Path` e outras que você verá depois. -## Requisite a indicação da chave para um único parâmetro de corpo +## Declare um único parâmetro de corpo indicando sua chave Suponha que você tem um único `item` parâmetro de corpo a partir de um modelo Pydantic `Item`. From 42a0efa56a4bf03c277be81208ad5ed3f7caf5de Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Wed, 12 Oct 2022 18:03:28 -0300 Subject: [PATCH 11/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Wuerike <35462243+Wuerike@users.noreply.github.com> --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index e02053318e903..a2d9a861ce780 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -34,7 +34,7 @@ Mas você pode também declarar múltiplos parâmetros de corpo, por exemplo, `i {!../../../docs_src/body_multiple_params/tutorial002.py!} ``` -Neste caso, **FastAPI** vai perceber que existe mais de um parâmetro de corpo na função (dois parâmetros que são modelos Pydantic). +Neste caso, **FastAPI** perceberá que existe mais de um parâmetro de corpo na função (dois parâmetros que são modelos Pydantic). Então, ele usará o nome dos parâmetros como chaves (nome dos campos) no corpo, e espera um corpo como: From 09d6c5a6151ecb762a493c7259b6e2db148d8df3 Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Wed, 12 Oct 2022 18:04:00 -0300 Subject: [PATCH 12/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Wuerike <35462243+Wuerike@users.noreply.github.com> --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index a2d9a861ce780..9d5c3c7c8d1b9 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -57,7 +57,7 @@ Então, ele usará o nome dos parâmetros como chaves (nome dos campos) no corpo Repare que mesmo que o `item` esteja declarado da mesma maneira que antes, agora é esperado que ele esteja dentro do corpo com uma chave `item`. -**FastAPI** vai fazer a conversão automática a partir da requisição, assim esse parâmetro `item` receberá seu respectivo conteúdo específico e o mesmo ocorrerá com `user`. +**FastAPI** fará a conversão automática a partir da requisição, assim esse parâmetro `item` receberá seu respectivo conteúdo e o mesmo ocorrerá com `user`. Ele vai realizar a validação dos dados compostos, e vai documentá-los de maneira compatível com `OpenAPI schema` e documentação automática. From 3d2d981ec0bcf7ed1e2069fe5281a894c2aaae04 Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Wed, 12 Oct 2022 18:05:03 -0300 Subject: [PATCH 13/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Wuerike <35462243+Wuerike@users.noreply.github.com> --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index 9d5c3c7c8d1b9..49e9be34b2993 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -59,7 +59,7 @@ Então, ele usará o nome dos parâmetros como chaves (nome dos campos) no corpo **FastAPI** fará a conversão automática a partir da requisição, assim esse parâmetro `item` receberá seu respectivo conteúdo e o mesmo ocorrerá com `user`. -Ele vai realizar a validação dos dados compostos, e vai documentá-los de maneira compatível com `OpenAPI schema` e documentação automática. +Ele executará a validação dos dados compostos e irá documentá-los de maneira compatível com o esquema OpenAPI e documentação automática. ## Valores singulares no corpo From 84fbb8bb33c54ea9f1a4d8aedabb3b7eab140dfb Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Wed, 12 Oct 2022 18:05:32 -0300 Subject: [PATCH 14/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Wuerike <35462243+Wuerike@users.noreply.github.com> --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index 49e9be34b2993..0df05c51910d3 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -95,7 +95,7 @@ Neste caso, **FastAPI** vai esperar um corpo como: } ``` -Mais uma vez, ele vai converter os tipos de dados, validar, documentar, etc. +Mais uma vez, ele converterá os tipos de dados, validar, documentar, etc. ## Múltiplos parâmetros de corpo e consulta From 1c409354740ba4a80b3e2af2f05958cfbdb3a45a Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Wed, 12 Oct 2022 18:06:23 -0300 Subject: [PATCH 15/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Wuerike <35462243+Wuerike@users.noreply.github.com> --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index 0df05c51910d3..eb48f972601d9 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -119,7 +119,7 @@ como em: ## Declare um único parâmetro de corpo indicando sua chave -Suponha que você tem um único `item` parâmetro de corpo a partir de um modelo Pydantic `Item`. +Suponha que você tem um único parâmetro de corpo `item`, a partir de um modelo Pydantic `Item`. Por padrão, o **FastAPI** vai então esperar que seu conteúdo venha no corpo diretamente. From 4a42bcdd1208ca4d0894154feb40fef78805eb41 Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Wed, 12 Oct 2022 18:07:10 -0300 Subject: [PATCH 16/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Wuerike <35462243+Wuerike@users.noreply.github.com> --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index eb48f972601d9..a557aeaf18138 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -121,7 +121,7 @@ como em: Suponha que você tem um único parâmetro de corpo `item`, a partir de um modelo Pydantic `Item`. -Por padrão, o **FastAPI** vai então esperar que seu conteúdo venha no corpo diretamente. +Por padrão, o **FastAPI** esperará que seu conteúdo venha no corpo diretamente. Mas se você quiser que ele requisite por um JSON com uma chave `item` e dentro dele os conteúdos do modelo, como ocorre ao declarar vários parâmetros de corpo, você pode usar o parâmetro especial de `Body` chamado `embed`: From 9765662fe4677abf3b71dfc6c94f6fadeccbffac Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Wed, 12 Oct 2022 18:08:03 -0300 Subject: [PATCH 17/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Wuerike <35462243+Wuerike@users.noreply.github.com> --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index a557aeaf18138..46a29813aba97 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -135,7 +135,7 @@ como em: {!../../../docs_src/body_multiple_params/tutorial005.py!} ``` -Neste caso o **FastAPI** vai esperar um corpo como: +Neste caso o **FastAPI** esperará um corpo como: ```JSON hl_lines="2" { From 62470ee639baa40c49c3ea3ce7ad8954ede1c7b5 Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Wed, 12 Oct 2022 18:11:35 -0300 Subject: [PATCH 18/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Wuerike <35462243+Wuerike@users.noreply.github.com> --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index 46a29813aba97..038364d8718e4 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -123,7 +123,7 @@ Suponha que você tem um único parâmetro de corpo `item`, a partir de um model Por padrão, o **FastAPI** esperará que seu conteúdo venha no corpo diretamente. -Mas se você quiser que ele requisite por um JSON com uma chave `item` e dentro dele os conteúdos do modelo, como ocorre ao declarar vários parâmetros de corpo, você pode usar o parâmetro especial de `Body` chamado `embed`: +Mas se você quiser que ele espere por um JSON com uma chave `item` e dentro dele os conteúdos do modelo, como ocorre ao declarar vários parâmetros de corpo, você pode usar o parâmetro especial de `Body` chamado `embed`: ```Python item: Item = Body(..., embed=True) From 93681d978d0e7c792c91ea0d8db5fa0f38fdb29a Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Wed, 12 Oct 2022 18:52:55 -0300 Subject: [PATCH 19/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Lorhan Sohaky <16273730+LorhanSohaky@users.noreply.github.com> --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index 038364d8718e4..2c2ac51fa4fca 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -63,7 +63,7 @@ Ele executará a validação dos dados compostos e irá documentá-los de maneir ## Valores singulares no corpo -Assim como existem uma `Query` e uma `Path` para definir dados adicionais para parâmetros de consulta e de rota, **FastAPI** provê o equivalente para `Body`. +Assim como existem uma `Query` e uma `Path` para definir dados adicionais para parâmetros de consulta e de rota, o **FastAPI** provê o equivalente para `Body`. Por exemplo, extendendo o modelo anterior, você poder decidir por ter uma outra chave `importance` no mesmo corpo, além de `item` e `user`. From 7b1085bbac736bb3240b84c9ba999818b08c2225 Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Wed, 12 Oct 2022 18:53:36 -0300 Subject: [PATCH 20/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Lorhan Sohaky <16273730+LorhanSohaky@users.noreply.github.com> --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index 2c2ac51fa4fca..e380342dc47a5 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -67,7 +67,7 @@ Assim como existem uma `Query` e uma `Path` para definir dados adicionais para p Por exemplo, extendendo o modelo anterior, você poder decidir por ter uma outra chave `importance` no mesmo corpo, além de `item` e `user`. -Se você declará-lo como é, porque é um valor singular, **FastAPI** vai assumir que se trata de um parâmetro de consulta. +Se você declará-lo como é, porque é um valor singular, o **FastAPI** vai assumir que se trata de um parâmetro de consulta. Mas você pode instruir **FastAPI** para tratá-lo como outra chave do corpo usando `Body`: From 846c67ccf25cdde9f522473f36cc7477302ff045 Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Wed, 12 Oct 2022 18:54:11 -0300 Subject: [PATCH 21/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Lorhan Sohaky <16273730+LorhanSohaky@users.noreply.github.com> --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index e380342dc47a5..d8bb1ecfb2790 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -69,7 +69,7 @@ Por exemplo, extendendo o modelo anterior, você poder decidir por ter uma outra Se você declará-lo como é, porque é um valor singular, o **FastAPI** vai assumir que se trata de um parâmetro de consulta. -Mas você pode instruir **FastAPI** para tratá-lo como outra chave do corpo usando `Body`: +Mas você pode instruir o **FastAPI** para tratá-lo como outra chave do corpo usando `Body`: ```Python hl_lines="23" From 835227eb3f01b17c9063a7a81f3d2f146cda7761 Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Wed, 12 Oct 2022 18:55:04 -0300 Subject: [PATCH 22/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Lorhan Sohaky <16273730+LorhanSohaky@users.noreply.github.com> --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index d8bb1ecfb2790..b902f9e82dd26 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -76,7 +76,7 @@ Mas você pode instruir o **FastAPI** para tratá-lo como outra chave do corpo u {!../../../docs_src/body_multiple_params/tutorial003.py!} ``` -Neste caso, **FastAPI** vai esperar um corpo como: +Neste caso, o **FastAPI** vai esperar um corpo como: ```JSON From e947e91805a7fc01f87f72610ca5714a4d022e97 Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Wed, 12 Oct 2022 18:55:42 -0300 Subject: [PATCH 23/25] Update docs/pt/docs/tutorial/body-multiple-params.md Co-authored-by: Lorhan Sohaky <16273730+LorhanSohaky@users.noreply.github.com> --- docs/pt/docs/tutorial/body-multiple-params.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index b902f9e82dd26..283d497df300d 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -99,7 +99,7 @@ Mais uma vez, ele converterá os tipos de dados, validar, documentar, etc. ## Múltiplos parâmetros de corpo e consulta -Obviamente, você pode também declarar parâmetros de consulta assim que você precisar, de modo adicional a quaisquer parâmetros de corpo. +Obviamente, você também pode declarar parâmetros de consulta assim que você precisar, de modo adicional a quaisquer parâmetros de corpo. Dado que, por padrão, valores singulares são interpretados como parâmetros de consulta, você não precisa explicitamente adicionar uma `Query`, você pode somente: From fcd8fd4d6652594c4e4b75ef79c7dda79464dc5f Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Wed, 12 Oct 2022 19:18:03 -0300 Subject: [PATCH 24/25] Improving the translation: tutorial - body multiple params --- docs/pt/docs/tutorial/body-multiple-params.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index 283d497df300d..f9baa1911720e 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -4,7 +4,7 @@ Agora que nós vimos como usar `Path` e `Query`, veremos usos mais avançados de ## Misture `Path`, `Query` e parâmetros de corpo -Primeiro, é claro, você pode misturar `Path`, `Query` e declarações de parâmetro no corpo da requisição livremente e **FastAPI** saberá o que fazer. +Primeiro, é claro, você pode misturar `Path`, `Query` e declarações de parâmetro no corpo da requisição livremente e o **FastAPI** saberá o que fazer. E você também pode declarar parâmetros de corpo como opcionais, definindo o valor padrão com `None`: @@ -34,7 +34,7 @@ Mas você pode também declarar múltiplos parâmetros de corpo, por exemplo, `i {!../../../docs_src/body_multiple_params/tutorial002.py!} ``` -Neste caso, **FastAPI** perceberá que existe mais de um parâmetro de corpo na função (dois parâmetros que são modelos Pydantic). +Neste caso, o **FastAPI** perceberá que existe mais de um parâmetro de corpo na função (dois parâmetros que são modelos Pydantic). Então, ele usará o nome dos parâmetros como chaves (nome dos campos) no corpo, e espera um corpo como: @@ -57,7 +57,7 @@ Então, ele usará o nome dos parâmetros como chaves (nome dos campos) no corpo Repare que mesmo que o `item` esteja declarado da mesma maneira que antes, agora é esperado que ele esteja dentro do corpo com uma chave `item`. -**FastAPI** fará a conversão automática a partir da requisição, assim esse parâmetro `item` receberá seu respectivo conteúdo e o mesmo ocorrerá com `user`. +O **FastAPI** fará a conversão automática a partir da requisição, assim esse parâmetro `item` receberá seu respectivo conteúdo e o mesmo ocorrerá com `user`. Ele executará a validação dos dados compostos e irá documentá-los de maneira compatível com o esquema OpenAPI e documentação automática. @@ -67,7 +67,7 @@ Assim como existem uma `Query` e uma `Path` para definir dados adicionais para p Por exemplo, extendendo o modelo anterior, você poder decidir por ter uma outra chave `importance` no mesmo corpo, além de `item` e `user`. -Se você declará-lo como é, porque é um valor singular, o **FastAPI** vai assumir que se trata de um parâmetro de consulta. +Se você declará-lo como é, porque é um valor singular, o **FastAPI** assumirá que se trata de um parâmetro de consulta. Mas você pode instruir o **FastAPI** para tratá-lo como outra chave do corpo usando `Body`: @@ -76,7 +76,7 @@ Mas você pode instruir o **FastAPI** para tratá-lo como outra chave do corpo u {!../../../docs_src/body_multiple_params/tutorial003.py!} ``` -Neste caso, o **FastAPI** vai esperar um corpo como: +Neste caso, o **FastAPI** esperará um corpo como: ```JSON From 76756c3746e56816cbdb3586ca7c1cfb40556abd Mon Sep 17 00:00:00 2001 From: Lucas Mendes <80999926+lbmendes@users.noreply.github.com> Date: Wed, 12 Oct 2022 22:31:22 -0300 Subject: [PATCH 25/25] Add updates from english version - tutorial body multiple params --- docs/pt/docs/tutorial/body-multiple-params.md | 81 ++++++++++++++----- 1 file changed, 62 insertions(+), 19 deletions(-) diff --git a/docs/pt/docs/tutorial/body-multiple-params.md b/docs/pt/docs/tutorial/body-multiple-params.md index f9baa1911720e..ac67aa47ff1d4 100644 --- a/docs/pt/docs/tutorial/body-multiple-params.md +++ b/docs/pt/docs/tutorial/body-multiple-params.md @@ -8,9 +8,17 @@ Primeiro, é claro, você pode misturar `Path`, `Query` e declarações de parâ E você também pode declarar parâmetros de corpo como opcionais, definindo o valor padrão com `None`: -```Python hl_lines="19-21" -{!../../../docs_src/body_multiple_params/tutorial001.py!} -``` +=== "Python 3.6 e superiores" + + ```Python hl_lines="19-21" + {!> ../../../docs_src/body_multiple_params/tutorial001.py!} + ``` + +=== "Python 3.10 e superiores" + + ```Python hl_lines="17-19" + {!> ../../../docs_src/body_multiple_params/tutorial001_py310.py!} + ``` !!! nota Repare que, neste caso, o `item` que seria capturado a partir do corpo é opcional. Visto que ele possui `None` como valor padrão. @@ -30,9 +38,17 @@ No exemplo anterior, as *operações de rota* esperariam um JSON no corpo conten Mas você pode também declarar múltiplos parâmetros de corpo, por exemplo, `item` e `user`: -```Python hl_lines="22" -{!../../../docs_src/body_multiple_params/tutorial002.py!} -``` +=== "Python 3.6 e superiores" + + ```Python hl_lines="22" + {!> ../../../docs_src/body_multiple_params/tutorial002.py!} + ``` + +=== "Python 3.10 e superiores" + + ```Python hl_lines="20" + {!> ../../../docs_src/body_multiple_params/tutorial002_py310.py!} + ``` Neste caso, o **FastAPI** perceberá que existe mais de um parâmetro de corpo na função (dois parâmetros que são modelos Pydantic). @@ -71,13 +87,19 @@ Se você declará-lo como é, porque é um valor singular, o **FastAPI** assumir Mas você pode instruir o **FastAPI** para tratá-lo como outra chave do corpo usando `Body`: +=== "Python 3.6 e superiores" -```Python hl_lines="23" -{!../../../docs_src/body_multiple_params/tutorial003.py!} -``` + ```Python hl_lines="22" + {!> ../../../docs_src/body_multiple_params/tutorial003.py!} + ``` -Neste caso, o **FastAPI** esperará um corpo como: +=== "Python 3.10 e superiores" + + ```Python hl_lines="20" + {!> ../../../docs_src/body_multiple_params/tutorial003_py310.py!} + ``` +Neste caso, o **FastAPI** esperará um corpo como: ```JSON { @@ -104,19 +126,32 @@ Obviamente, você também pode declarar parâmetros de consulta assim que você Dado que, por padrão, valores singulares são interpretados como parâmetros de consulta, você não precisa explicitamente adicionar uma `Query`, você pode somente: ```Python -q: Optional[str] = None +q: Union[str, None] = None ``` -como em: +Ou como em Python 3.10 e versões superiores: -```Python hl_lines="28" -{!../../../docs_src/body_multiple_params/tutorial004.py!} +```Python +q: str | None = None ``` +Por exemplo: + +=== "Python 3.6 e superiores" + + ```Python hl_lines="27" + {!> ../../../docs_src/body_multiple_params/tutorial004.py!} + ``` + +=== "Python 3.10 e superiores" + + ```Python hl_lines="26" + {!> ../../../docs_src/body_multiple_params/tutorial004_py310.py!} + ``` + !!! info "Informação" `Body` também possui todas as validações adicionais e metadados de parâmetros como em `Query`,`Path` e outras que você verá depois. - ## Declare um único parâmetro de corpo indicando sua chave Suponha que você tem um único parâmetro de corpo `item`, a partir de um modelo Pydantic `Item`. @@ -126,14 +161,22 @@ Por padrão, o **FastAPI** esperará que seu conteúdo venha no corpo diretament Mas se você quiser que ele espere por um JSON com uma chave `item` e dentro dele os conteúdos do modelo, como ocorre ao declarar vários parâmetros de corpo, você pode usar o parâmetro especial de `Body` chamado `embed`: ```Python -item: Item = Body(..., embed=True) +item: Item = Body(embed=True) ``` como em: -```Python hl_lines="17" -{!../../../docs_src/body_multiple_params/tutorial005.py!} -``` +=== "Python 3.6 e superiores" + + ```Python hl_lines="17" + {!> ../../../docs_src/body_multiple_params/tutorial005.py!} + ``` + +=== "Python 3.10 e superiores" + + ```Python hl_lines="15" + {!> ../../../docs_src/body_multiple_params/tutorial005_py310.py!} + ``` Neste caso o **FastAPI** esperará um corpo como: