]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add Portuguese translation for `docs/pt/docs/tutorial/dependencies/dependencies...
authorJoĂŁo Pedro Pereira Holanda <joaopedroph09@gmail.com>
Mon, 8 Jul 2024 16:09:45 +0000 (13:09 -0300)
committerGitHub <noreply@github.com>
Mon, 8 Jul 2024 16:09:45 +0000 (11:09 -0500)
docs/pt/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md [new file with mode: 0644]

diff --git a/docs/pt/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md b/docs/pt/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md
new file mode 100644 (file)
index 0000000..4a29726
--- /dev/null
@@ -0,0 +1,138 @@
+# DependĂȘncias em decoradores de operaçÔes de rota
+
+Em alguns casos vocĂȘ nĂŁo precisa necessariamente retornar o valor de uma dependĂȘncia dentro de uma *função de operação de rota*.
+
+Ou a dependĂȘncia nĂŁo retorna nenhum valor.
+
+Mas vocĂȘ ainda precisa que ela seja executada/resolvida.
+
+Para esses casos, em vez de declarar um parĂąmetro em uma *função de operação de rota* com `Depends`, vocĂȘ pode adicionar um argumento `dependencies` do tipo `list` ao decorador da operação de rota.
+
+## Adicionando `dependencies` ao decorador da operação de rota
+
+O *decorador da operação de rota* recebe um argumento opcional `dependencies`.
+
+Ele deve ser uma lista de `Depends()`:
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="19"
+    {!> ../../../docs_src/dependencies/tutorial006_an_py39.py!}
+    ```
+
+=== "Python 3.8+"
+
+    ```Python hl_lines="18"
+    {!> ../../../docs_src/dependencies/tutorial006_an.py!}
+    ```
+
+=== "Python 3.8 non-Annotated"
+
+    !!! tip "Dica"
+        Utilize a versĂŁo com `Annotated` se possĂ­vel
+
+    ```Python hl_lines="17"
+    {!> ../../../docs_src/dependencies/tutorial006.py!}
+    ```
+Essas dependĂȘncias serĂŁo executadas/resolvidas da mesma forma que dependĂȘncias comuns. Mas o valor delas (se existir algum) nĂŁo serĂĄ passado para a sua *função de operação de rota*.
+
+!!! tip "Dica"
+    Alguns editores de texto checam parĂąmetros de funçÔes nĂŁo utilizados, e os mostram como erros.
+
+    Utilizando `dependencies` no *decorador da operação de rota* vocĂȘ pode garantir que elas serĂŁo executadas enquanto evita errors de editores/ferramentas.
+
+    Isso tambĂ©m pode ser Ăștil para evitar confundir novos desenvolvedores que ao ver um parĂąmetro nĂŁo usado no seu cĂłdigo podem pensar que ele Ă© desnecessĂĄrio.
+
+!!! info "Informação"
+    Neste exemplo utilizamos cabeçalhos personalizados inventados `X-Keys` e `X-Token`.
+
+    Mas em situaçÔes reais, como implementaçÔes de segurança, vocĂȘ pode obter mais vantagens em usar as [Ferramentas de segurança integradas (o prĂłximo capĂ­tulo)](../security/index.md){.internal-link target=_blank}.
+
+## Erros das dependĂȘncias e valores de retorno
+
+VocĂȘ pode utilizar as mesmas *funçÔes* de dependĂȘncias que vocĂȘ usaria normalmente.
+
+### Requisitos de DependĂȘncias
+
+DependĂȘncias podem declarar requisitos de requisiçÔes (como cabeçalhos) ou outras subdependĂȘncias:
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="8  13"
+    {!> ../../../docs_src/dependencies/tutorial006_an_py39.py!}
+    ```
+
+=== "Python 3.8+"
+
+    ```Python hl_lines="7  12"
+    {!> ../../../docs_src/dependencies/tutorial006_an.py!}
+    ```
+
+=== "Python 3.8 non-Annotated"
+
+    !!! tip "Dica"
+        Utilize a versĂŁo com `Annotated` se possĂ­vel
+
+    ```Python hl_lines="6  11"
+    {!> ../../../docs_src/dependencies/tutorial006.py!}
+    ```
+
+### Levantando exceçÔes
+
+Essas dependĂȘncias podem levantar exceçÔes, da mesma forma que dependĂȘncias comuns:
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="10  15"
+    {!> ../../../docs_src/dependencies/tutorial006_an_py39.py!}
+    ```
+
+=== "Python 3.8+"
+
+    ```Python hl_lines="9  14"
+    {!> ../../../docs_src/dependencies/tutorial006_an.py!}
+    ```
+
+=== "Python 3.8 non-Annotated"
+
+    !!! tip "Dica"
+        Utilize a versĂŁo com `Annotated` se possĂ­vel
+
+    ```Python hl_lines="8  13"
+    {!> ../../../docs_src/dependencies/tutorial006.py!}
+    ```
+
+### Valores de retorno
+
+E elas tambĂ©m podem ou nĂŁo retornar valores, eles nĂŁo serĂŁo utilizados.
+
+EntĂŁo, vocĂȘ pode reutilizar uma dependĂȘncia comum (que retorna um valor) que jĂĄ seja utilizada em outro lugar, e mesmo que o valor nĂŁo seja utilizado, a dependĂȘncia serĂĄ executada:
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="11  16"
+    {!> ../../../docs_src/dependencies/tutorial006_an_py39.py!}
+    ```
+
+=== "Python 3.8+"
+
+    ```Python hl_lines="10  15"
+    {!> ../../../docs_src/dependencies/tutorial006_an.py!}
+    ```
+
+=== "Python 3.8 non-Annotated"
+
+    !!! tip "Dica"
+       Utilize a versĂŁo com `Annotated` se possĂ­vel
+
+    ```Python hl_lines="9  14"
+    {!> ../../../docs_src/dependencies/tutorial006.py!}
+    ```
+
+## DependĂȘncias para um grupo de *operaçÔes de rota*
+
+Mais a frente, quando vocĂȘ ler sobre como estruturar aplicaçÔes maiores ([Bigger Applications - Multiple Files](../../tutorial/bigger-applications.md){.internal-link target=_blank}), possivelmente com mĂșltiplos arquivos, vocĂȘ aprenderĂĄ a declarar um Ășnico parĂąmetro `dependencies` para um grupo de *operaçÔes de rota*.
+
+## DependĂȘncias globais
+
+No prĂłximo passo veremos como adicionar dependĂȘncias para uma aplicação `FastAPI` inteira, para que ela seja aplicada em toda *operação de rota*.