diff --git a/docs/pt/docs/tutorial/bigger-applications.md b/docs/pt/docs/tutorial/bigger-applications.md index b621f3c72..fad94c612 100644 --- a/docs/pt/docs/tutorial/bigger-applications.md +++ b/docs/pt/docs/tutorial/bigger-applications.md @@ -1,4 +1,4 @@ -# Aplicações Maiores - Múltiplos Arquivos +# Aplicações Maiores - Múltiplos Arquivos { #bigger-applications-multiple-files } Se você está construindo uma aplicação ou uma API web, é raro que você possa colocar tudo em um único arquivo. @@ -10,7 +10,7 @@ Se você vem do Flask, isso seria o equivalente aos Blueprints do Flask. /// -## Um exemplo de estrutura de arquivos +## Um exemplo de estrutura de arquivos { #an-example-file-structure } Digamos que você tenha uma estrutura de arquivos como esta: @@ -71,7 +71,7 @@ A mesma estrutura de arquivos com comentários: │   └── admin.py # "admin" submódulo, e.g. import app.internal.admin ``` -## `APIRouter` +## `APIRouter` { #apirouter } Vamos supor que o arquivo dedicado a lidar apenas com usuários seja o submódulo em `/app/routers/users.py`. @@ -81,7 +81,7 @@ Mas ele ainda faz parte da mesma aplicação/web API **FastAPI** (faz parte do m Você pode criar as *operações de rotas* para esse módulo usando o `APIRouter`. -### Importar `APIRouter` +### Importar `APIRouter` { #import-apirouter } você o importa e cria uma "instância" da mesma maneira que faria com a classe `FastAPI`: @@ -89,7 +89,7 @@ você o importa e cria uma "instância" da mesma maneira que faria com a classe {!../../docs_src/bigger_applications/app/routers/users.py!} ``` -### *Operações de Rota* com `APIRouter` +### *Operações de Rota* com `APIRouter` { #path-operations-with-apirouter } E então você o utiliza para declarar suas *operações de rota*. @@ -113,7 +113,7 @@ Neste exemplo, a variável é chamada de `router`, mas você pode nomeá-la como Vamos incluir este `APIRouter` na aplicação principal `FastAPI`, mas primeiro, vamos verificar as dependências e outro `APIRouter`. -## Dependências +## Dependências { #dependencies } Vemos que precisaremos de algumas dependências usadas em vários lugares da aplicação. @@ -137,7 +137,7 @@ Agora usaremos uma dependência simples para ler um cabeçalho `X-Token` persona //// -//// tab | Python 3.8+ non-Annotated +//// tab | Python 3.8+ não anotado /// tip | Dica @@ -159,7 +159,7 @@ Mas em casos reais, você obterá melhores resultados usando os [Utilitários de /// -## Outro módulo com `APIRouter` +## Outro módulo com `APIRouter` { #another-module-with-apirouter } Digamos que você também tenha os endpoints dedicados a manipular "itens" do seu aplicativo no módulo em `app/routers/items.py`. @@ -177,7 +177,7 @@ Sabemos que todas as *operações de rota* neste módulo têm o mesmo: * Path `prefix`: `/items`. * `tags`: (apenas uma tag: `items`). * Extra `responses`. -* `dependências`: todas elas precisam da dependência `X-Token` que criamos. +* `dependencies`: todas elas precisam da dependência `X-Token` que criamos. Então, em vez de adicionar tudo isso a cada *operação de rota*, podemos adicioná-lo ao `APIRouter`. @@ -224,17 +224,17 @@ O resultado final é que os caminhos dos itens agora são: /// tip | Dica -Ter `dependências` no `APIRouter` pode ser usado, por exemplo, para exigir autenticação para um grupo inteiro de *operações de rota*. Mesmo que as dependências não sejam adicionadas individualmente a cada uma delas. +Ter `dependencies` no `APIRouter` pode ser usado, por exemplo, para exigir autenticação para um grupo inteiro de *operações de rota*. Mesmo que as dependências não sejam adicionadas individualmente a cada uma delas. /// -/// check +/// check | Verifique Os parâmetros `prefix`, `tags`, `responses` e `dependencies` são (como em muitos outros casos) apenas um recurso do **FastAPI** para ajudar a evitar duplicação de código. /// -### Importar as dependências +### Importar as dependências { #import-the-dependencies } Este código reside no módulo `app.routers.items`, o arquivo `app/routers/items.py`. @@ -246,7 +246,7 @@ Então usamos uma importação relativa com `..` para as dependências: {!../../docs_src/bigger_applications/app/routers/items.py!} ``` -#### Como funcionam as importações relativas +#### Como funcionam as importações relativas { #how-relative-imports-work } /// tip | Dica @@ -309,11 +309,11 @@ Isso se referiria a algum pacote acima de `app/`, com seu próprio arquivo `__in Mas agora você sabe como funciona, então você pode usar importações relativas em seus próprios aplicativos, não importa o quão complexos eles sejam. 🤓 -### Adicione algumas `tags`, `respostas` e `dependências` personalizadas +### Adicione algumas `tags`, `responses` e `dependencies` personalizadas { #add-some-custom-tags-responses-and-dependencies } Não estamos adicionando o prefixo `/items` nem `tags=["items"]` a cada *operação de rota* porque os adicionamos ao `APIRouter`. -Mas ainda podemos adicionar _mais_ `tags` que serão aplicadas a uma *operação de rota* específica, e também algumas `respostas` extras específicas para essa *operação de rota*: +Mas ainda podemos adicionar _mais_ `tags` que serão aplicadas a uma *operação de rota* específica, e também algumas `responses` extras específicas para essa *operação de rota*: ```Python hl_lines="30-31" title="app/routers/items.py" {!../../docs_src/bigger_applications/app/routers/items.py!} @@ -327,7 +327,7 @@ E também terá ambas as respostas na documentação, uma para `404` e uma para /// -## O principal `FastAPI` +## O principal `FastAPI` { #the-main-fastapi } Agora, vamos ver o módulo em `app/main.py`. @@ -337,7 +337,7 @@ Este será o arquivo principal em seu aplicativo que une tudo. E como a maior parte de sua lógica agora viverá em seu próprio módulo específico, o arquivo principal será bem simples. -### Importar `FastAPI` +### Importe o `FastAPI` { #import-fastapi } Você importa e cria uma classe `FastAPI` normalmente. @@ -347,7 +347,7 @@ E podemos até declarar [dependências globais](dependencies/global-dependencies {!../../docs_src/bigger_applications/app/main.py!} ``` -### Importe o `APIRouter` +### Importe o `APIRouter` { #import-the-apirouter } Agora importamos os outros submódulos que possuem `APIRouter`s: @@ -357,7 +357,7 @@ Agora importamos os outros submódulos que possuem `APIRouter`s: Como os arquivos `app/routers/users.py` e `app/routers/items.py` são submódulos que fazem parte do mesmo pacote Python `app`, podemos usar um único ponto `.` para importá-los usando "importações relativas". -### Como funciona a importação +### Como funciona a importação { #how-the-importing-works } A seção: @@ -399,7 +399,7 @@ Para saber mais sobre pacotes e módulos Python, leia ```console -$ uvicorn app.main:app --reload +$ fastapi dev app/main.py INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) ``` @@ -537,7 +537,7 @@ Você verá a documentação automática da API, incluindo os caminhos de todos -## Incluir o mesmo roteador várias vezes com `prefixos` diferentes +## Incluir o mesmo roteador várias vezes com `prefix` diferentes { #include-the-same-router-multiple-times-with-different-prefix } Você também pode usar `.include_router()` várias vezes com o *mesmo* roteador usando prefixos diferentes. @@ -545,7 +545,7 @@ Isso pode ser útil, por exemplo, para expor a mesma API sob prefixos diferentes Esse é um uso avançado que você pode não precisar, mas está lá caso precise. -## Incluir um `APIRouter` em outro +## Incluir um `APIRouter` em outro { #include-an-apirouter-in-another } Da mesma forma que você pode incluir um `APIRouter` em um aplicativo `FastAPI`, você pode incluir um `APIRouter` em outro `APIRouter` usando: