]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add Portuguese translation for `docs/pt/docs/deployment/manually.md` (#12210)
authorJoĂŁo Gustavo Rogel de Oliveira <joaogustavorogel@hotmail.com>
Fri, 20 Sep 2024 11:10:02 +0000 (08:10 -0300)
committerGitHub <noreply@github.com>
Fri, 20 Sep 2024 11:10:02 +0000 (13:10 +0200)
docs/pt/docs/deployment/manually.md [new file with mode: 0644]

diff --git a/docs/pt/docs/deployment/manually.md b/docs/pt/docs/deployment/manually.md
new file mode 100644 (file)
index 0000000..9eff3da
--- /dev/null
@@ -0,0 +1,169 @@
+# Execute um Servidor Manualmente
+
+## Utilize o comando `fastapi run`
+
+Em resumo, utilize o comando `fastapi run` para inicializar sua aplicação FastAPI:
+
+<div class="termy">
+
+```console
+$ <font color="#4E9A06">fastapi</font> run <u style="text-decoration-style:single">main.py</u>
+<font color="#3465A4">INFO    </font> Using path <font color="#3465A4">main.py</font>
+<font color="#3465A4">INFO    </font> Resolved absolute path <font color="#75507B">/home/user/code/awesomeapp/</font><font color="#AD7FA8">main.py</font>
+<font color="#3465A4">INFO    </font> Searching for package file structure from directories with <font color="#3465A4">__init__.py</font> files
+<font color="#3465A4">INFO    </font> Importing from <font color="#75507B">/home/user/code/</font><font color="#AD7FA8">awesomeapp</font>
+
+ â•­â”€ <font color="#8AE234"><b>Python module file</b></font> â”€â•ź
+ â”‚                      â”‚
+ â”‚  đŸ main.py          â”‚
+ â”‚                      â”‚
+ â•°â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â•Ż
+
+<font color="#3465A4">INFO    </font> Importing module <font color="#4E9A06">main</font>
+<font color="#3465A4">INFO    </font> Found importable FastAPI app
+
+ â•­â”€ <font color="#8AE234"><b>Importable FastAPI app</b></font> â”€â•ź
+ â”‚                          â”‚
+ â”‚  <span style="background-color:#272822"><font color="#FF4689">from</font></span><span style="background-color:#272822"><font color="#F8F8F2"> main </font></span><span style="background-color:#272822"><font color="#FF4689">import</font></span><span style="background-color:#272822"><font color="#F8F8F2"> app</font></span><span style="background-color:#272822">  </span>  â”‚
+ â”‚                          â”‚
+ â•°â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â•Ż
+
+<font color="#3465A4">INFO    </font> Using import string <font color="#8AE234"><b>main:app</b></font>
+
+ <font color="#4E9A06">╭─────────── FastAPI CLI - Production mode â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â•ź</font>
+ <font color="#4E9A06">│                                                     â”‚</font>
+ <font color="#4E9A06">│  Serving at: http://0.0.0.0:8000                    â”‚</font>
+ <font color="#4E9A06">│                                                     â”‚</font>
+ <font color="#4E9A06">│  API docs: http://0.0.0.0:8000/docs                 â”‚</font>
+ <font color="#4E9A06">│                                                     â”‚</font>
+ <font color="#4E9A06">│  Running in production mode, for development use:   â”‚</font>
+ <font color="#4E9A06">│                                                     â”‚</font>
+ <font color="#4E9A06">│  </font><font color="#8AE234"><b>fastapi dev</b></font><font color="#4E9A06">                                        â”‚</font>
+ <font color="#4E9A06">│                                                     â”‚</font>
+ <font color="#4E9A06">╰─────────────────────────────────────────────────────╯</font>
+
+<font color="#4E9A06">INFO</font>:     Started server process [<font color="#06989A">2306215</font>]
+<font color="#4E9A06">INFO</font>:     Waiting for application startup.
+<font color="#4E9A06">INFO</font>:     Application startup complete.
+<font color="#4E9A06">INFO</font>:     Uvicorn running on <b>http://0.0.0.0:8000</b> (Press CTRL+C to quit)
+```
+
+</div>
+
+Isto deve funcionar para a maioria dos casos. đŸ˜Ž
+
+VocĂȘ pode utilizar esse comando, por exemplo, para iniciar sua aplicação **FastAPI** em um contĂȘiner, em um servidor, etc.
+
+## Servidores ASGI
+
+Vamos nos aprofundar um pouco mais em detalhes.
+
+FastAPI utiliza um padrĂŁo para construir frameworks e servidores web em Python chamado <abbr title="Asynchronous Server Gateway Interface">ASGI</abbr>. FastAPI Ă© um framework web ASGI.
+
+A principal coisa que vocĂȘ precisa para executar uma aplicação **FastAPI** (ou qualquer outra aplicação ASGI) em uma mĂĄquina de servidor remoto Ă© um programa de servidor ASGI como o **Uvicorn**, que Ă© o que vem por padrĂŁo no comando `fastapi`.
+
+Existem diversas alternativas, incluindo:
+
+* <a href="https://www.uvicorn.org/" class="external-link" target="_blank">Uvicorn</a>: um servidor ASGI de alta performance.
+* <a href="https://hypercorn.readthedocs.io/" class="external-link" target="_blank">Hypercorn</a>: um servidor ASGI compĂĄtivel com HTTP/2, Trio e outros recursos.
+* <a href="https://github.com/django/daphne" class="external-link" target="_blank">Daphne</a>: servidor ASGI construĂ­do para Django Channels.
+* <a href="https://github.com/emmett-framework/granian" class="external-link" target="_blank">Granian</a>: um servidor HTTP Rust para aplicaçÔes Python.
+* <a href="https://unit.nginx.org/howto/fastapi/" class="external-link" target="_blank">NGINX Unit</a>: NGINX Unit Ă© um runtime de aplicação web leve e versĂĄtil.
+
+## MĂĄquina Servidora e Programa Servidor
+
+Existe um pequeno detalhe sobre estes nomes para se manter em mente. đŸ’Ą
+
+A palavra "**servidor**" Ă© comumente usada para se referir tanto ao computador remoto/nuvem (a mĂĄquina fĂ­sica ou virtual) quanto ao programa que estĂĄ sendo executado nessa mĂĄquina (por exemplo, Uvicorn).
+
+Apenas tenha em mente que quando vocĂȘ ler "servidor" em geral, isso pode se referir a uma dessas duas coisas.
+
+Quando se refere Ă  mĂĄquina remota, Ă© comum chamĂĄ-la de **servidor**, mas tambĂ©m de **mĂĄquina**, **VM** (mĂĄquina virtual), **nĂł**. Todos esses termos se referem a algum tipo de mĂĄquina remota, normalmente executando Linux, onde vocĂȘ executa programas.
+
+## Instale o Programa Servidor
+
+Quando vocĂȘ instala o FastAPI, ele vem com um servidor de produção, o Uvicorn, e vocĂȘ pode iniciĂĄ-lo com o comando `fastapi run`.
+
+Mas vocĂȘ tambĂ©m pode instalar um servidor ASGI manualmente.
+
+Certifique-se de criar um [ambiente virtual](../virtual-environments.md){.internal-link target=_blank}, ativĂĄ-lo e, em seguida, vocĂȘ pode instalar a aplicação do servidor.
+
+Por exemplo, para instalar o Uvicorn:
+
+<div class="termy">
+
+```console
+$ pip install "uvicorn[standard]"
+
+---> 100%
+```
+
+</div>
+
+Um processo semelhante se aplicaria a qualquer outro programa de servidor ASGI.
+
+/// tip | "Dica"
+
+Adicionando o `standard`, o Uvicorn instalarĂĄ e usarĂĄ algumas dependĂȘncias extras recomendadas.
+
+Isso inclui o `uvloop`, a substituição de alto desempenho para `asyncio`, que fornece um grande aumento de desempenho de concorrĂȘncia.
+
+Quando vocĂȘ instala o FastAPI com algo como `pip install "fastapi[standard]"`, vocĂȘ jĂĄ obtĂ©m `uvicorn[standard]` tambĂ©m.
+
+///
+
+## Execute o Programa Servidor
+
+Se vocĂȘ instalou um servidor ASGI manualmente, normalmente precisarĂĄ passar uma string de importação em um formato especial para que ele importe sua aplicação FastAPI:
+
+<div class="termy">
+
+```console
+$ uvicorn main:app --host 0.0.0.0 --port 80
+
+<span style="color: green;">INFO</span>:     Uvicorn running on http://0.0.0.0:80 (Press CTRL+C to quit)
+```
+
+</div>
+
+/// note | "Nota"
+
+O comando `uvicorn main:app` refere-se a:
+
+* `main`: o arquivo `main.py` (o "mĂłdulo" Python).
+* `app`: o objeto criado dentro de `main.py` com a linha `app = FastAPI()`.
+
+É equivalente a:
+
+```Python
+from main import app
+```
+
+///
+
+Cada programa de servidor ASGI alternativo teria um comando semelhante, vocĂȘ pode ler mais na documentação respectiva.
+
+/// warning | "Aviso"
+
+Uvicorn e outros servidores suportam a opção `--reload` que Ă© Ăștil durante o desenvolvimento.
+
+A opção `--reload` consome muito mais recursos, Ă© mais instĂĄvel, etc.
+
+Ela ajuda muito durante o **desenvolvimento**, mas vocĂȘ **nĂŁo deve** usĂĄ-la em **produção**.
+
+///
+
+## Conceitos de Implantação
+
+Esses exemplos executam o programa do servidor (por exemplo, Uvicorn), iniciando **um Ășnico processo**, ouvindo em todos os IPs (`0.0.0.0`) em uma porta predefinida (por exemplo, `80`).
+
+Esta Ă© a ideia bĂĄsica. Mas vocĂȘ provavelmente vai querer cuidar de algumas coisas adicionais, como:
+
+* Segurança - HTTPS
+* Executando na inicialização
+* ReinicializaçÔes
+* Replicação (o nĂșmero de processos em execução)
+* MemĂłria
+* Passos anteriores antes de começar
+
+Vou te contar mais sobre cada um desses conceitos, como pensar sobre eles e alguns exemplos concretos com estratĂ©gias para lidar com eles nos prĂłximos capĂ­tulos. đŸš€