Servidor Proxy CORS baseado em Next.js para deploy via Vercel
|| Conteúdo || Stack || Documentação || Instruções || Variáveis de Ambiente ||
|| Notas de versão || Autores || Contato || Licença ||
Este projeto pode ser utilizado para subir um servidor CORS que transmite os headers CORS (e quaisquer outros desejáveis) para a entrada e saída das requisições na forma de um middleware. Ele direciona todas as chamadas de rota de API (diretório /api) para fazerem rota com o Proxy, o qual suprime o caminho original e transfere o endereço de destino a ser acessado com os headers.
- Linguagem Principal: Javascript
- Gerenciador de Bibliotecas: Yarn
- Bibliotecas: Para uma lista completa de bibliotecas e dependências nos mais variados escopos, conferir o arquivo package.json.
Documentação adicional pode ser encontrada aqui.
Faça um git clone ou o download do repositório, da forma que preferir
git clone https://github.com/dexdevlab/nextjs-proxy-cors.git
1 - Execute yarn dev
ou npm run dev
do terminal dentro do diretório do projeto. A aplicação irá ser executada na porta 3000 como padrão.
2 - Para realizar o redirecionamento de um site, faça uma requisição GET
no seguinte formato: ${server_address}:${server_port}/api?url=${destination_url}
. Por exemplo: http://localhost:3000/api?url=https://http.cat/100
. Esta requisição devolverá o endereço com os HEADERS pertinentes ao CORS na entrada e na saída, como um bypass.
NOTA: Não foram testados outros métodos de requisição HTTP por não haver necessidade no momento.
Você pode inicializar sua própria instância do Servidor Nextjs CORS clicando neste botão:
Para usar a aplicação, crie um arquivo .env
com as seguintes variáveis de ambiente:
Variável | Uso |
---|---|
NEXT_PUBLIC_RATE_LIMIT_REQUESTS |
Quantidade específica de requisições que podem ser feitas em um determinado intervalo. |
NEXT_PUBLIC_RATE_LIMIT_INTERVAL |
O intervalo em segundos em que a quantidade de requisições são redefinidas. Por exemplo, NEXT_PUBLIC_RATE_LIMIT_REQUESTS = 30 e NEXT_PUBLIC_RATE_LIMIT_INTERVAL = 60 significam 30 requisições a cada 60 segundos, no máximo. |
NEXT_PUBLIC_RATE_LIMIT_USERS |
A quantidade de usuários que podem fazer requisições por intervalo. Por exemplo, NEXT_PUBLIC_RATE_LIMIT_INTERVAL = 60 e NEXT_PUBLIC_RATE_LIMIT_USERS = 50 significam um máximo de 50 diferentes usuários requisitando a cada 60 segundos. |
- Atualização da Documentação
- Ajuste na execução de atalhos para correção de página inválida no Vercel
- Ajuste na estrutura da documentação
- Criação de branch específico para documentação
- Ajuste de deployment no Vercel
- Alteração na estrutura da documentação para compatibilidade com Vercel
- Ajuste de deployment no Vercel
- Implementação de Rate Limit
- Atualização da documentação
- Ajuste de rotas para documentação dinâmica
- Teste com Middleware de Rate Limit
- Atualização da Documentação
- Restruturação de pastas da aplicação
- Teste com Middleware de Rate Limit
- Atualização da Documentação
- Atualização da Documentação
- Adição de dependências e testes de execução no Vercel
- Adição de Next.js como dependência e mais testes de execução no Vercel
- Refatoração e teste de execução
- Ajuste para execução direta sem intermédio do Next.js
- Atualização da Documentação
- Criação de variável de ambiente para definir schema HTTP
- Alteração de saída para erros no Servidor
- Ajuste na rota CORS para receber o schema HTTP e manipular exceções
- Commit inicial
Se você gostou deste projeto, dê uma estrela.
Para contato, envie um email a: dex.houshi@hotmail.com
Licenciado sob a MIT License.