New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weâll occasionally send you account related emails.
Already on GitHub? Sign in to your account
đ Add Portuguese translation for docs/pt/docs/tutorial/body-multiple-params.md
#4111
Merged
tiangolo
merged 26 commits into
tiangolo:master
from
lbmendes:portuguese-translation/body-multiple-params
Oct 31, 2022
Merged
Changes from 24 commits
Commits
Show all changes
26 commits
Select commit
Hold shift + click to select a range
97fa202
Translate to PT body-multiple-params.md
lbmendes afab46a
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes 8eac216
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes 1c8f3ae
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes 64f21da
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes f1a3a7d
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes 275d42a
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes f2d3006
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes c681435
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes dc63e15
Update body-multiple-params.md
lbmendes 42a0efa
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes 09d6c5a
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes 3d2d981
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes 84fbb8b
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes 1c40935
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes 4a42bcd
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes 9765662
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes 62470ee
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes 93681d9
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes 7b1085b
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes 846c67c
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes 835227e
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes e947e91
Update docs/pt/docs/tutorial/body-multiple-params.md
lbmendes fcd8fd4
Improving the translation: tutorial - body multiple params
lbmendes 76756c3
Add updates from english version - tutorial body multiple params
lbmendes 9ba8f04
Merge branch 'master' into portuguese-translation/body-multiple-params
lbmendes File filter
Filter by extension
Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,170 @@ | ||
# Corpo - MĂșltiplos parĂąmetros | ||
|
||
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 | ||
|
||
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`: | ||
|
||
```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, por exemplo, `item` e `user`: | ||
|
||
```Python hl_lines="22" | ||
{!../../../docs_src/body_multiple_params/tutorial002.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). | ||
|
||
EntĂŁo, ele 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 Ă© esperado que ele esteja dentro do corpo com uma chave `item`. | ||
|
||
|
||
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. | ||
|
||
## Valores singulares no corpo | ||
|
||
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`. | ||
|
||
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`: | ||
|
||
|
||
```Python hl_lines="23" | ||
{!../../../docs_src/body_multiple_params/tutorial003.py!} | ||
``` | ||
|
||
Neste caso, o **FastAPI** 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 converterĂĄ os tipos de dados, validar, documentar, etc. | ||
|
||
## MĂșltiplos parĂąmetros de corpo e consulta | ||
|
||
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: | ||
|
||
```Python | ||
q: Optional[str] = None | ||
``` | ||
|
||
como em: | ||
|
||
```Python hl_lines="28" | ||
{!../../../docs_src/body_multiple_params/tutorial004.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`. | ||
|
||
Por padrĂŁo, o **FastAPI** esperarĂĄ que seu conteĂșdo venha no corpo diretamente. | ||
|
||
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) | ||
``` | ||
|
||
como em: | ||
|
||
```Python hl_lines="17" | ||
{!../../../docs_src/body_multiple_params/tutorial005.py!} | ||
``` | ||
|
||
Neste caso o **FastAPI** 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*. | ||
lbmendes marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
VocĂȘ tambĂ©m pode declarar valores singulares para serem recebidos como parte do corpo. | ||
|
||
E vocĂȘ pode instruir o **FastAPI** para requisitar no corpo a indicação de chave mesmo quando existe somente um Ășnico parĂąmetro declarado. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The english content was updated with some addictions like mentions to python 3.10. I will review and update this PR with the updated version.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's finished. I updated the translation with the actual content from english version.