Browse Source
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>pull/14563/head
committed by
GitHub
2 changed files with 82 additions and 0 deletions
@ -0,0 +1,65 @@ |
|||
# FastAPI Cloud { #fastapi-cloud } |
|||
|
|||
Você pode implantar sua aplicação FastAPI no <a href="https://fastapicloud.com" class="external-link" target="_blank">FastAPI Cloud</a> com um **único comando**; entre na lista de espera, caso ainda não tenha feito isso. 🚀 |
|||
|
|||
## Login { #login } |
|||
|
|||
Certifique-se de que você já tem uma conta no **FastAPI Cloud** (nós convidamos você a partir da lista de espera 😉). |
|||
|
|||
Depois, faça login: |
|||
|
|||
<div class="termy"> |
|||
|
|||
```console |
|||
$ fastapi login |
|||
|
|||
You are logged in to FastAPI Cloud 🚀 |
|||
``` |
|||
|
|||
</div> |
|||
|
|||
## Implantar { #deploy } |
|||
|
|||
Agora, implante sua aplicação, com **um único comando**: |
|||
|
|||
<div class="termy"> |
|||
|
|||
```console |
|||
$ fastapi deploy |
|||
|
|||
Deploying to FastAPI Cloud... |
|||
|
|||
✅ Deployment successful! |
|||
|
|||
🐔 Ready the chicken! Your app is ready at https://myapp.fastapicloud.dev |
|||
``` |
|||
|
|||
</div> |
|||
|
|||
É isso! Agora você pode acessar sua aplicação nesse URL. ✨ |
|||
|
|||
## Sobre o FastAPI Cloud { #about-fastapi-cloud } |
|||
|
|||
O **<a href="https://fastapicloud.com" class="external-link" target="_blank">FastAPI Cloud</a>** é desenvolvido pelo mesmo autor e equipe por trás do **FastAPI**. |
|||
|
|||
Ele simplifica o processo de **criar**, **implantar** e **acessar** uma API com esforço mínimo. |
|||
|
|||
Traz a mesma **experiência do desenvolvedor** de criar aplicações com FastAPI para **implantá-las** na nuvem. 🎉 |
|||
|
|||
Ele também cuidará da maioria das coisas de que você precisaria ao implantar uma aplicação, como: |
|||
|
|||
* HTTPS |
|||
* Replicação, com dimensionamento automático baseado em requests |
|||
* etc. |
|||
|
|||
O FastAPI Cloud é o patrocinador principal e provedor de financiamento dos projetos open source do ecossistema *FastAPI and friends*. ✨ |
|||
|
|||
## Implantar em outros provedores de nuvem { #deploy-to-other-cloud-providers } |
|||
|
|||
FastAPI é open source e baseado em padrões. Você pode implantar aplicações FastAPI em qualquer provedor de nuvem que escolher. |
|||
|
|||
Siga os tutoriais do seu provedor de nuvem para implantar aplicações FastAPI com esse provedor. 🤓 |
|||
|
|||
## Implantar no seu próprio servidor { #deploy-your-own-server } |
|||
|
|||
Também vou lhe ensinar, mais adiante neste guia de **Implantação**, todos os detalhes, para que você possa entender o que está acontecendo, o que precisa acontecer, ou como implantar aplicações FastAPI por conta própria, inclusive nos seus próprios servidores. 🤓 |
|||
@ -0,0 +1,17 @@ |
|||
# Usar antigos códigos de status de erro de autenticação 403 { #use-old-403-authentication-error-status-codes } |
|||
|
|||
Antes da versão `0.122.0` do FastAPI, quando os utilitários de segurança integrados retornavam um erro ao cliente após uma falha na autenticação, eles usavam o código de status HTTP `403 Forbidden`. |
|||
|
|||
A partir da versão `0.122.0` do FastAPI, eles usam o código de status HTTP `401 Unauthorized`, mais apropriado, e retornam um cabeçalho `WWW-Authenticate` adequado na response, seguindo as especificações HTTP, <a href="https://datatracker.ietf.org/doc/html/rfc7235#section-3.1" class="external-link" target="_blank">RFC 7235</a>, <a href="https://datatracker.ietf.org/doc/html/rfc9110#name-401-unauthorized" class="external-link" target="_blank">RFC 9110</a>. |
|||
|
|||
Mas, se por algum motivo seus clientes dependem do comportamento antigo, você pode voltar a ele sobrescrevendo o método `make_not_authenticated_error` nas suas classes de segurança. |
|||
|
|||
Por exemplo, você pode criar uma subclasse de `HTTPBearer` que retorne um erro `403 Forbidden` em vez do erro padrão `401 Unauthorized`: |
|||
|
|||
{* ../../docs_src/authentication_error_status_code/tutorial001_an_py39.py hl[9:13] *} |
|||
|
|||
/// tip | Dica |
|||
|
|||
Perceba que a função retorna a instância da exceção, ela não a lança. O lançamento é feito no restante do código interno. |
|||
|
|||
/// |
|||
Loading…
Reference in new issue