Esta API permite o gerenciamento de informações de alunos, incluindo a criação, atualização, recuperação e exclusão de registros de alunos.
Certifique-se de que você tenha as seguintes dependências instaladas:
- Node.js
- Express.js
- Knex.js
- Banco de dados configurado de acordo com o knexfile.js
- dotenv
- jsonwebtoken
- bcrypt
Certifique-se de configurar corretamente o arquivo knexfile.js
para se conectar ao seu banco de dados.
npm init
npm install express --save
npm install knex --save
npm install morgan --save
npm install sqlite3 --save
npm install pg --save (se for rodar env production,ver em .env)
npm install jsonwebtoken
npm install dotenv
npm install bcryptjs
npx knex init
npx knex migrate:make create_alunos
npx knex migrate:make create_usuarios
npx knex migrate:up
npx knex seed:make alunos
npx knex seed:make usuarios
npx knex seed:run
npx knex migrate:make create_usuario
nodemon .\server.js
para carregar produção:
npx knex migrate:latest --env production
npx knex seed:run --env production
Não é necessário roda-los, utilize apenas como conhecimento do fluxo de criação do projeto para fazer um novo
Gerar um secret:
node -e "console.log(require('crypto').randomBytes(256).toString('base64'));"
Se acabou de baixar o projeto, apenas rode o comando abaixo para carregar o node_modules e execute o projeto com o segundo comando:
node install
node .\server.js
Projeto contem um arquivo de collection pronto chamado rest-api-alunos.postman_collection.json que pode ser importado no Postman.
- URL:
/api/auth/login
- Método HTTP: POST
- Descrição: Autentica um usuario e retorna o Token de autenticação.
- Corpo da Solicitação:
{ "login": "user", "senha": "1234" }
- Resposta de Sucesso:
- Código: 200 No Content
- Exemplo de Resposta:
{ "token": "---token---" }
- URL:
/api/alunos
- Método HTTP: GET
- Descrição: Retorna uma lista de todos os alunos cadastrados.
- Resposta de Sucesso:
- Código: 200 OK
- Exemplo de Resposta:
[ { "id": 1, "nome": "João", "genero": "M", "email": "joao@example.com" }, { "id": 2, "nome": "Maria", "genero": "F", "email": "maria@example.com" } ]
- Resposta de Erro:
- Código: 500 Internal Server Error
- Exemplo de Resposta:
{ "mensagem": "Erro ao buscar alunos." }
- URL:
/api/alunos/:id
- Método HTTP: GET
- Descrição: Retorna os detalhes de um aluno com base no ID fornecido.
- Parâmetros de URL:
id
(integer): ID do aluno a ser buscado.
- Resposta de Sucesso:
- Código: 200 OK
- Exemplo de Resposta:
{ "id": 1, "nome": "João", "genero": "M", "email": "joao@example.com" }
- Resposta de Erro:
- Código: 404 Not Found
- Exemplo de Resposta:
{ "mensagem": "Aluno não encontrado." }
- URL:
/api/alunos
- Método HTTP: POST
- Descrição: Cria um novo aluno com os dados fornecidos.
- Corpo da Solicitação:
{ "nome": "Maria", "genero": "F", "email": "maria@example.com" }
- Resposta de Sucesso:
- Código: 201 Created
- Exemplo de Resposta:
{ "id": 3, "nome": "Maria", "genero": "F", "email": "maria@example.com" }
- Resposta de Erro:
- Código: 400 Bad Request
- Exemplo de Resposta:
{ "mensagem": "Preencha todos os campos obrigatórios." }
- URL:
/api/alunos/:id
- Método HTTP: PUT
- Descrição: Atualiza os dados de um aluno com base no ID fornecido.
- Parâmetros de URL:
id
(integer): ID do aluno a ser atualizado.
- Corpo da Solicitação:
{ "nome": "João Silva", "genero": "M", "email": "joao.silva@example.com" }
- Resposta de Sucesso:
- Código: 200 OK
- Exemplo de Resposta:
{ "id": 1, "nome": "João", "genero": "M", "email": "joao@example.com" }
- Resposta de Erro:
- Código: 404 Not Found
- Exemplo de Resposta:
{ "mensagem": "Aluno não encontrado." }
- URL:
/api/alunos/:id
- Método HTTP: DELETE
- Descrição: Exclui um aluno com base no ID fornecido.
- Parâmetros de URL:
id
(integer): ID do aluno a ser excluído.
- Resposta de Sucesso:
- Código: 204 No Content