<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> app </font></span> Using import string: <fontcolor="#3465A4">main:app</font>
│ │
│ <spanstyle="background-color:#272822"><fontcolor="#FF4689">from</font></span><spanstyle="background-color:#272822"><fontcolor="#F8F8F2"> main </font></span><spanstyle="background-color:#272822"><fontcolor="#FF4689">import</font></span><spanstyle="background-color:#272822"><fontcolor="#F8F8F2"> app</font></span><spanstyle="background-color:#272822"></span> │
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> server </font></span> Server started at <fontcolor="#729FCF"><ustyle="text-decoration-style:solid">http://0.0.0.0:8000</u></font>
│ │
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> server </font></span> Documentation at <fontcolor="#729FCF"><ustyle="text-decoration-style:solid">http://0.0.0.0:8000/docs</u></font>
╰──────────────────────────╯
Logs:
<fontcolor="#3465A4">INFO </font> Using import string <fontcolor="#8AE234"><b>main:app</b></font>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Started server process <b>[</b><fontcolor="#34E2E2"><b>2306215</b></font><b>]</b>
<fontcolor="#4E9A06">╭─────────── FastAPI CLI - Production mode ───────────╮</font>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Waiting for application startup.
<fontcolor="#4E9A06">│ │</font>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Application startup complete.
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Uvicorn running on <fontcolor="#729FCF"><ustyle="text-decoration-style:solid">http://0.0.0.0:8000</u></font><b>(</b>Press CTRL+C
<fontcolor="#4E9A06">│ │</font>
to quit<b>)</b>
<fontcolor="#4E9A06">│ API docs: http://0.0.0.0:8000/docs │</font>
<fontcolor="#4E9A06">│ │</font>
<fontcolor="#4E9A06">│ Running in production mode, for development use: │</font>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> app </font></span> Using import string: <fontcolor="#3465A4">main:app</font>
│ │
│ <spanstyle="background-color:#272822"><fontcolor="#FF4689">from</font></span><spanstyle="background-color:#272822"><fontcolor="#F8F8F2"> main </font></span><spanstyle="background-color:#272822"><fontcolor="#FF4689">import</font></span><spanstyle="background-color:#272822"><fontcolor="#F8F8F2"> app</font></span><spanstyle="background-color:#272822"></span> │
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> server </font></span> Server started at <fontcolor="#729FCF"><ustyle="text-decoration-style:solid">http://0.0.0.0:8000</u></font>
│ │
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> server </font></span> Documentation at <fontcolor="#729FCF"><ustyle="text-decoration-style:solid">http://0.0.0.0:8000/docs</u></font>
╰──────────────────────────╯
Logs:
<fontcolor="#3465A4">INFO </font> Using import string <fontcolor="#8AE234"><b>main:app</b></font>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Uvicorn running on <fontcolor="#729FCF"><ustyle="text-decoration-style:solid">http://0.0.0.0:8000</u></font><b>(</b>Press CTRL+C to
<fontcolor="#4E9A06">╭─────────── FastAPI CLI - Production mode ───────────╮</font>
quit<b>)</b>
<fontcolor="#4E9A06">│ │</font>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Started parent process <b>[</b><fontcolor="#34E2E2"><b>27365</b></font><b>]</b>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Started server process <b>[</b><fontcolor="#34E2E2"><b>27368</b></font><b>]</b>
<fontcolor="#4E9A06">│ │</font>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Started server process <b>[</b><fontcolor="#34E2E2"><b>27369</b></font><b>]</b>
<fontcolor="#4E9A06">│ API docs: http://0.0.0.0:8000/docs │</font>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Started server process <b>[</b><fontcolor="#34E2E2"><b>27370</b></font><b>]</b>
<fontcolor="#4E9A06">│ │</font>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Started server process <b>[</b><fontcolor="#34E2E2"><b>27367</b></font><b>]</b>
<fontcolor="#4E9A06">│ Running in production mode, for development use: │</font>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Waiting for application startup.
<fontcolor="#4E9A06">│ │</font>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Waiting for application startup.
* `app`: o objeto criado no arquivo `main.py` com a linha `app = FastAPI()`.
* `--reload`: faz o servidor reiniciar após mudanças de código. Use apenas para desenvolvimento.
///
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> app </font></span> Using import string: <fontcolor="#3465A4">main:app</font>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> server </font></span> Server started at <fontcolor="#729FCF"><ustyle="text-decoration-style:solid">http://127.0.0.1:8000</u></font>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> server </font></span> Documentation at <fontcolor="#729FCF"><ustyle="text-decoration-style:solid">http://127.0.0.1:8000/docs</u></font>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> tip </font></span> Running in development mode, for production use:
<b>fastapi run</b>
Logs:
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Will watch for changes in these directories:
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Uvicorn running on <fontcolor="#729FCF"><ustyle="text-decoration-style:solid">http://127.0.0.1:8000</u></font><b>(</b>Press CTRL+C
to quit<b>)</b>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Started reloader process <b>[</b><fontcolor="#34E2E2"><b>383138</b></font><b>]</b> using WatchFiles
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Started server process <b>[</b><fontcolor="#34E2E2"><b>383153</b></font><b>]</b>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Waiting for application startup.
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Application startup complete.
```
</div>
Na saída, temos:
Na saída, temos:
@ -151,34 +167,6 @@ Aqui, a variável `app` será uma "instância" da classe `FastAPI`.
Este será o principal ponto de interação para criar toda a sua API.
Este será o principal ponto de interação para criar toda a sua API.
Este `app` é o mesmo referenciado por `uvicorn` no comando:
<divclass="termy">
```console
$ uvicorn main:app --reload
<spanstyle="color: green;">INFO</span>: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
@ -4,9 +4,7 @@ Esse tutorial mostra como usar o **FastAPI** com a maior parte de seus recursos,
Cada seção constrói, gradualmente, sobre as anteriores, mas sua estrutura são tópicos separados, para que você possa ir a qualquer um específico e resolver suas necessidades específicas de API.
Cada seção constrói, gradualmente, sobre as anteriores, mas sua estrutura são tópicos separados, para que você possa ir a qualquer um específico e resolver suas necessidades específicas de API.
Ele também foi feito como referência futura.
Ele também foi construído para servir como uma referência futura, então você pode voltar e ver exatamente o que você precisa.
Então você poderá voltar e ver exatamente o que precisar.
## Rode o código
## Rode o código
@ -17,13 +15,39 @@ Para rodar qualquer um dos exemplos, copie o codigo para um arquivo `main.py`, e
<divclass="termy">
<divclass="termy">
```console
```console
$ uvicorn main:app --reload
$ <fontcolor="#4E9A06">fastapi</font> dev <ustyle="text-decoration-style:solid">main.py</u>
<spanstyle="background-color:#009485"><fontcolor="#D3D7CF"> FastAPI </font></span> Starting development server 🚀
Searching for package file structure from directories
with <fontcolor="#3465A4">__init__.py</font> files
Importing from <fontcolor="#75507B">/home/user/code/</font><fontcolor="#AD7FA8">awesomeapp</font>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> app </font></span> Using import string: <fontcolor="#3465A4">main:app</font>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> server </font></span> Server started at <fontcolor="#729FCF"><ustyle="text-decoration-style:solid">http://127.0.0.1:8000</u></font>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> server </font></span> Documentation at <fontcolor="#729FCF"><ustyle="text-decoration-style:solid">http://127.0.0.1:8000/docs</u></font>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> tip </font></span> Running in development mode, for production use:
<b>fastapi run</b>
Logs:
<spanstyle="color: green;">INFO</span>: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Will watch for changes in these directories:
<spanstyle="color: green;">INFO</span>: Started reloader process [28720]
<spanstyle="color: green;">INFO</span>: Started server process [28722]
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Uvicorn running on <fontcolor="#729FCF"><ustyle="text-decoration-style:solid">http://127.0.0.1:8000</u></font><b>(</b>Press CTRL+C
<spanstyle="color: green;">INFO</span>: Waiting for application startup.
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Started reloader process <b>[</b><fontcolor="#34E2E2"><b>383138</b></font><b>]</b> using WatchFiles
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Started server process <b>[</b><fontcolor="#34E2E2"><b>383153</b></font><b>]</b>
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Waiting for application startup.
<spanstyle="background-color:#007166"><fontcolor="#D3D7CF"> INFO </font></span> Application startup complete.
```
```
</div>
</div>
@ -43,32 +67,18 @@ Para o tutorial, você deve querer instalá-lo com todas as dependências e recu
<divclass="termy">
<divclass="termy">
```console
```console
$ pip install "fastapi[all]"
$ pip install "fastapi[standard]"
---> 100%
---> 100%
```
```
</div>
</div>
...isso também inclui o `uvicorn`, que você pode usar como o servidor que rodará seu código.
/// note | Nota
/// note | Nota
Você também pode instalar parte por parte.
Quando você instala com pip install "fastapi[standard]", ele vem com algumas dependências opcionais padrão.
Isso é provavelmente o que você faria quando você quisesse lançar sua aplicação em produção:
```
pip install fastapi
```
Também instale o `uvicorn` para funcionar como servidor:
```
pip install "uvicorn[standard]"
```
E o mesmo para cada dependência opcional que você quiser usar.
Se você não quiser ter essas dependências opcionais, pode instalar pip install fastapi em vez disso.