Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
đ Add Portuguese translation for `docs/pt/docs/tutorial/path-params-nâŠ
âŠumeric-validations.md` (#4099) Co-authored-by: Pedro Victor <32584628+peidrao@users.noreply.github.com> Co-authored-by: Lucas <61513630+lsglucas@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
- Loading branch information
1 parent
7a2e9c7
commit 330e811
Showing
2 changed files
with
139 additions
and
0 deletions.
There are no files selected for viewing
138 changes: 138 additions & 0 deletions
138
docs/pt/docs/tutorial/path-params-numeric-validations.md
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,138 @@ | ||
# Parùmetros da Rota e ValidaçÔes Numéricas | ||
|
||
Do mesmo modo que vocĂȘ pode declarar mais validaçÔes e metadados para parĂąmetros de consulta com `Query`, vocĂȘ pode declarar os mesmos tipos de validaçÔes e metadados para parĂąmetros de rota com `Path`. | ||
|
||
## Importe `Path` | ||
|
||
Primeiro, importe `Path` de `fastapi`: | ||
|
||
=== "Python 3.6 e superiores" | ||
|
||
```Python hl_lines="3" | ||
{!> ../../../docs_src/path_params_numeric_validations/tutorial001.py!} | ||
``` | ||
|
||
=== "Python 3.10 e superiores" | ||
|
||
```Python hl_lines="1" | ||
{!> ../../../docs_src/path_params_numeric_validations/tutorial001_py310.py!} | ||
``` | ||
|
||
## Declare metadados | ||
|
||
VocĂȘ pode declarar todos os parĂąmetros da mesma maneira que na `Query`. | ||
|
||
Por exemplo para declarar um valor de metadado `title` para o parĂąmetro de rota `item_id` vocĂȘ pode digitar: | ||
|
||
=== "Python 3.6 e superiores" | ||
|
||
```Python hl_lines="10" | ||
{!> ../../../docs_src/path_params_numeric_validations/tutorial001.py!} | ||
``` | ||
|
||
=== "Python 3.10 e superiores" | ||
|
||
```Python hl_lines="8" | ||
{!> ../../../docs_src/path_params_numeric_validations/tutorial001_py310.py!} | ||
``` | ||
|
||
!!! note "Nota" | ||
Um parĂąmetro de rota Ă© sempre obrigatĂłrio, como se fizesse parte da rota. | ||
|
||
EntĂŁo, vocĂȘ deve declarĂĄ-lo com `...` para marcĂĄ-lo como obrigatĂłrio. | ||
|
||
Mesmo que vocĂȘ declare-o como `None` ou defina um valor padrĂŁo, isso nĂŁo teria efeito algum, o parĂąmetro ainda seria obrigatĂłrio. | ||
|
||
## Ordene os parĂąmetros de acordo com sua necessidade | ||
|
||
Suponha que vocĂȘ queira declarar o parĂąmetro de consulta `q` como uma `str` obrigatĂłria. | ||
|
||
E vocĂȘ nĂŁo precisa declarar mais nada em relação a este parĂąmetro, entĂŁo vocĂȘ nĂŁo precisa necessariamente usar `Query`. | ||
|
||
Mas vocĂȘ ainda precisa usar `Path` para o parĂąmetro de rota `item_id`. | ||
|
||
O Python irĂĄ acusar se vocĂȘ colocar um elemento com um valor padrĂŁo definido antes de outro que nĂŁo tenha um valor padrĂŁo. | ||
|
||
Mas vocĂȘ pode reordenĂĄ-los, colocando primeiro o elemento sem o valor padrĂŁo (o parĂąmetro de consulta `q`). | ||
|
||
Isso não faz diferença para o **FastAPI**. Ele vai detectar os parùmetros pelos seus nomes, tipos e definiçÔes padrão (`Query`, `Path`, etc), sem se importar com a ordem. | ||
|
||
EntĂŁo, vocĂȘ pode declarar sua função assim: | ||
|
||
```Python hl_lines="7" | ||
{!../../../docs_src/path_params_numeric_validations/tutorial002.py!} | ||
``` | ||
|
||
## Ordene os parĂąmetros de a acordo com sua necessidade, truques | ||
|
||
Se vocĂȘ quiser declarar o parĂąmetro de consulta `q` sem um `Query` nem um valor padrĂŁo, e o parĂąmetro de rota `item_id` usando `Path`, e definĂ-los em uma ordem diferente, Python tem um pequeno truque na sintaxe para isso. | ||
|
||
Passe `*`, como o primeiro parùmetro da função. | ||
|
||
O Python nĂŁo vai fazer nada com esse `*`, mas ele vai saber que a partir dali os parĂąmetros seguintes deverĂŁo ser chamados argumentos nomeados (pares chave-valor), tambĂ©m conhecidos como <abbr title="Do inglĂȘs: K-ey W-ord Arg-uments"><code>kwargs</code></abbr>. Mesmo que eles nĂŁo possuam um valor padrĂŁo. | ||
|
||
```Python hl_lines="7" | ||
{!../../../docs_src/path_params_numeric_validations/tutorial003.py!} | ||
``` | ||
|
||
## ValidaçÔes numéricas: maior que ou igual | ||
|
||
Com `Query` e `Path` (e outras que vocĂȘ verĂĄ mais tarde) vocĂȘ pode declarar restriçÔes numĂ©ricas. | ||
|
||
Aqui, com `ge=1`, `item_id` precisarĂĄ ser um nĂșmero inteiro maior que ("`g`reater than") ou igual ("`e`qual") a 1. | ||
|
||
```Python hl_lines="8" | ||
{!../../../docs_src/path_params_numeric_validations/tutorial004.py!} | ||
``` | ||
|
||
## ValidaçÔes numéricas: maior que e menor que ou igual | ||
|
||
O mesmo se aplica para: | ||
|
||
* `gt`: maior que (`g`reater `t`han) | ||
* `le`: menor que ou igual (`l`ess than or `e`qual) | ||
|
||
```Python hl_lines="9" | ||
{!../../../docs_src/path_params_numeric_validations/tutorial005.py!} | ||
``` | ||
|
||
## ValidaçÔes numéricas: valores do tipo float, maior que e menor que | ||
|
||
ValidaçÔes numéricas também funcionam para valores do tipo `float`. | ||
|
||
Aqui Ă© onde se torna importante a possibilidade de declarar <abbr title="greater than"><code>gt</code></abbr> e nĂŁo apenas <abbr title="greater than or equal"><code>ge</code></abbr>. Com isso vocĂȘ pode especificar, por exemplo, que um valor deve ser maior que `0`, ainda que seja menor que `1`. | ||
|
||
Assim, `0.5` seria um valor vĂĄlido. Mas `0.0` ou `0` nĂŁo seria. | ||
|
||
E o mesmo para <abbr title="less than"><code>lt</code></abbr>. | ||
|
||
```Python hl_lines="11" | ||
{!../../../docs_src/path_params_numeric_validations/tutorial006.py!} | ||
``` | ||
|
||
## Recapitulando | ||
|
||
Com `Query`, `Path` (e outras que vocĂȘ ainda nĂŁo viu) vocĂȘ pode declarar metadados e validaçÔes de texto do mesmo modo que com [ParĂąmetros de consulta e validaçÔes de texto](query-params-str-validations.md){.internal-link target=_blank}. | ||
|
||
E vocĂȘ tambĂ©m pode declarar validaçÔes numĂ©ricas: | ||
|
||
* `gt`: maior que (`g`reater `t`han) | ||
* `ge`: maior que ou igual (`g`reater than or `e`qual) | ||
* `lt`: menor que (`l`ess `t`han) | ||
* `le`: menor que ou igual (`l`ess than or `e`qual) | ||
|
||
!!! info "Informação" | ||
`Query`, `Path` e outras classes que vocĂȘ verĂĄ a frente sĂŁo subclasses de uma classe comum `Param`. | ||
|
||
Todas elas compartilham os mesmos parĂąmetros para validação adicional e metadados que vocĂȘ viu. | ||
|
||
!!! note "Detalhes TĂ©cnicos" | ||
Quando vocĂȘ importa `Query`, `Path` e outras de `fastapi`, elas sĂŁo na verdade funçÔes. | ||
|
||
Que quando chamadas, retornam instĂąncias de classes de mesmo nome. | ||
|
||
EntĂŁo, vocĂȘ importa `Query`, que Ă© uma função. E quando vocĂȘ a chama, ela retorna uma instĂąncia de uma classe tambĂ©m chamada `Query`. | ||
|
||
Estas funçÔes são assim (ao invés de apenas usar as classes diretamente) para que seu editor não acuse erros sobre seus tipos. | ||
|
||
Dessa maneira vocĂȘ pode user seu editor e ferramentas de desenvolvimento sem precisar adicionar configuraçÔes customizadas para ignorar estes erros. |
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