Template
Modelo do encurtador em FastAPI
Gerado a partir de deploy-templates/fastapi (dado.cloud ab2f4c0).
This commit is contained in:
@@ -8,9 +8,10 @@ uma versão nova do seu app, sozinho.
|
||||
|
||||
## O que tem aqui
|
||||
|
||||
- `main.py`: o app FastAPI — página, API (`POST/GET /api/links`) e o redirecionamento `GET /<código>` (302).
|
||||
- `main.py`: o app FastAPI — página, API (`POST/GET /api/links`), o aviso `GET /<código>` e o redirecionamento `GET /<código>/ir` (302).
|
||||
- `links.py`: onde os links ficam guardados (na memória) e a validação dos endereços.
|
||||
- `paginas/index.html`: a página (HTML, CSS e o JavaScript do formulário). Mude à vontade.
|
||||
- `paginas/aviso.html`: a página de aviso que mostra para onde o link leva, antes de sair.
|
||||
- `paginas/nao-encontrado.html`: a página de link que não existe.
|
||||
- `requirements.txt`: as dependências, com versão fixa.
|
||||
|
||||
@@ -73,7 +74,10 @@ curl https://<endereço-do-seu-app>/api/links
|
||||
# 200 {"links":[...]}
|
||||
```
|
||||
|
||||
`GET /<código>` redireciona (302) para o link original e soma um clique. A API aceita
|
||||
`GET /<código>` abre uma página de aviso com o endereço de destino e o botão "Continuar",
|
||||
que leva a `GET /<código>/ir`: ali o app soma um clique e redireciona (302) para o link
|
||||
original. O aviso existe porque o encurtador é público — sem ele, qualquer pessoa poderia
|
||||
usar o endereço do seu app para disfarçar um link de golpe. A API aceita
|
||||
chamadas de qualquer site (CORS aberto só em `/api/*`), então outro app seu pode usá-la.
|
||||
Para evitar abuso, cada IP cria no máximo 30 links a cada 10 minutos.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user