roxterjs
v0.1.8
Published
O RoxterJS Router é um framework para gerenciar requisições de diferentes verbos HTTPs e possui um mecanismo de rotas baseado no conceito de pastas e subpastas aninhadas.
Downloads
35
Maintainers
Readme
Status da api
- [x] Estável em produção
- [x] Ultima versão 2024-04-02
- [x] Versão atualizada v0.1.8
Novidades
# .env.test
$ ROXTER_MODE = "dev"|"prod" #default -> dev. Obrigatório mudar p/ "prod" em ambiente de produção.
$ ROXTER_PORT = 3333 #default -> porta de entrada (não obrigatório)
$ ROXTER_HOSTNAME = "localhost" #default (não obrigatório)
$ ROXTER_FILE_PATH = "./" #default -> __root pasta onde o arquivo app.routes.js será criado (não obrigatório)
$ ROXTER_FILE_ROUTES = "app.routes.js" #default -> nome_do_arquivo onde as rotas serão salvas (não obrigatório)
$ ROXTER_TIMEOUT = 10000 #default -> tempo limite de espera para resposta do serviço (não obrigatório)
$ ROXTER_CPUS = 0 #default -> detalhes no texto abaixo...
ROXTER_CPUS
Primeiros passos (exemplo):
# Crie um novo package.json
$ npm init -y
# npm ou yarn
$ npm i roxterjs
# app.js
- root_projeto
- app.js
- package.json
- README.md
- src/
- routes/
- controller/
- services/
# app.js
import Roxter from "roxterjs";
const roxter = await Roxter('./src/routes'); # <-caminho-> './src/routes'
# A função abaixo irá construir as rotas e iniciar o servidor
roxter.Start();
Criando uma rota:
- root_projeto
- app.js
- package.json
- README.md
- src/
- routes/
- api/
- view/
- api/
- routes/
# http://localhost:3333/api/view
- root_projeto
- app.js
- package.json
- README.md
- src/
- routes/
- api/
- view/
- get.js
- view/
- api/
- routes/
# http://localhost:3333/api/view
# __root/src/routes/api/view/get.js
export default async function App({ res }){
return res.end(JSON.stringfy({
name: "RoxterJs",
partner: "Roxter.Xteezer",
address: "São Paulo - SP"
}))
}
# Teste cURL:
$ curl -X GET http://localhost:3333/api/view
Recebendo uma [parâmetros]
# __root/src/routes/api/view/[id]/get.js
export default async function App({ res, keys }){
const { id } = await keys;
return res.end(`Sua chave é ${id}`);
}
# Teste cURL:
$ curl -X GET http://localhost:3333/api/view/1234
Recebendo [querys]
# __root/src/routes/api/view/[id]/get.js
export default async function App({ res, keys, params }){
const { color } = await params;
const { id } = await keys;
return res.end(`Sua chave é ${id}, sua cor é ${color}`);
}
# Teste cURL:
$ curl -X GET http://localhost:3333/api/view/1234?color=azul
Recebendo um [body]
- root_projeto
- app.js
- package.json
- README.md
- src/
- routes/
- api/
- view/
- ...
- view/
- data/
- dong/
- post.js
- dong/
- api/
- routes/
# http://localhost:3333/data/dong
# __root/src/routes/data/dong/post.js
export default async function App({ res, body }){
const { id } = await body;
return res.end(`Sua chave é ${id}`);
}
# Teste cURL:
$ curl -X POST http://localhost:3333/data/dong -d '{"id":"191919"}'
Adicionando Resposta ao Header (setHeader)
# app.js
import Roxter from "roxterjs";
const roxter = await Roxter('./src/routes');
# Adicione como parâmetro Start({ params })
roxter.Start({
setHeaders:[
{ name: "Access-Control-Allow-Origin", value: "*" },
{ name: "Access-Control-Allow-Methods", value: "GET, OPTIONS, POST, PUT" },
{ name: "Access-Control-Allow-Headers", value: "Access-Control-Allow-Headers, Origin, X-Requested-With, Content-Type, Accept, Authorization" }
]
});
🎲 Github
# Clone este repositório
$ git clone https://github.com/packrd/roxterjs.git
🛠 Tecnologias
As seguintes ferramentas foram usadas na construção do projeto:
- [x] NodeJs
- [x] Javascript
- [ ] TypeScript
Colaboradores
:1st_place_medal: @rodrigo.buttura