Giter Club home page Giter Club logo

desafio-api-sistemas's Introduction

Desafio API - SISTEMAS

img Este projeto, desenvolvido em NestJS, implementa uma API REST para gerenciar registros de pessoas, permitindo operações CRUD (Create, Read, Update, Delete). Cada registro contém informações como nome, sexo, data de nascimento, estado civil e endereços. A segurança é garantida por meio de autenticação e autorização de usuários.

Documentação extensa no Swagger

Acesse em https://api-desafio-d87c8746780f.herokuapp.com/api

Desafio Proposto

O objetivo deste desafio é desenvolver uma API REST em Node.js que permita a realização de operações CRUD em registros de pessoas, com autenticação de usuários para acesso à API.

Tecnologias Utilizadas

  • NestJS: Framework Node.js para construir aplicações de servidor eficientes e escaláveis.
  • MySQL-Hostinger: Sistema de gerenciamento de banco de dados SQL.
  • Swagger: Ferramenta para documentação de APIs REST.

Como Executar

Instruções

  1. Consulte os endpoints

  2. faça uma consulta no swagger docs acessando o endereço https://api-desafio-d87c8746780f.herokuapp.com/api

Documentação da API

A documentação da API é detalhada abaixo, incluindo informações sobre autenticação e os endpoints disponíveis.

Autenticação

Todos os endpoints, exceto /auth/login, /auth/register e /auth/check-token, requerem autenticação. O token JWT deve ser incluído no cabeçalho Authorization das requisições, no formato Authorization: Bearer YourTokenJWT.

Endpoints de Autenticação

  • POST /auth/login
    • Descrição: Realiza o login do usuário.
    • Permissão de Acesso: Todos.
    • Dados de Entrada: email, senha.
  • POST /auth/register
    • Descrição: Registra um novo usuário.
    • Permissão de Acesso: Todos.
    • Dados de Entrada: nome, senha, email.
  • POST /auth/check-token
    • Descrição: Valida o token JWT fornecido.
    • Permissão de Acesso: Todos.
    • Dados de Entrada no Headers: Authorization: Bearer YourTokenJWT.

Endpoints de Gerenciamento de Usuários e Fichas

  • GET /user/id

    • Descrição: Consulta todas as fichas de usuários.
    • Permissão de Acesso: Somente SuperAdmin.
  • GET /user/search-id

    • Descrição: Consulta uma única ficha de usuário pelo ID.
    • Permissão de Acesso: SuperAdmin, Proprietário.
    • Parâmetro na URL: id.
  • GET /user/search-email

    • Descrição: Consulta uma única ficha de usuário pelo e-mail.
    • Permissão de Acesso: SuperAdmin, Proprietário.
    • Parâmetro na URL: email.
  • POST /user/create-ficha

    • Descrição: Cria uma nova ficha de usuário.
    • Permissão de Acesso: SuperAdmin, Proprietário.
    • Dados de Entrada: nome, sexo, data de nascimento, estado civil, endereços.
  • DELETE /user/delete-ficha

    • Descrição: Deleta a ficha de um usuário pelo e-mail.
    • Permissão de Acesso: SuperAdmin, Proprietário.
    • Parâmetro na URL: email.
  • PUT /user/update-ficha

    • Descrição: Atualiza a ficha de um usuário.
    • Permissão de Acesso: SuperAdmin, Proprietário.
    • Dados de Entrada: nome, sexo, data de nascimento, estado civil, endereços.
    • Parâmetro na URL: email.

Segurança dos dados

No projeto Desafio-FRONT-SISTEMAS, foram implementados vários recursos de segurança para garantir a integridade e proteção dos dados dos usuários. Alguns desses recursos incluem:

Autenticação com Token JWT: A autenticação é realizada utilizando tokens JWT (JSON Web Tokens), fornecendo um método seguro e eficiente para autenticar usuários. Isso permite que o usuário seja autenticado de forma segura após o login, e o token JWT é armazenado no cliente para autorizar futuras requisições.

Controle de Acesso de Usuários: A API implementa controle de acesso baseado em papéis de usuário, permitindo diferentes níveis de permissões para diferentes tipos de usuários. Por exemplo, certas operações podem ser restritas apenas a superusuários, enquanto outras podem ser acessíveis a todos os usuários autenticados.

Requisições Seguras: Todas as requisições feitas à API são protegidas pelo protocolo HTTPS, garantindo que os dados sejam transmitidos de forma segura entre o cliente e o servidor. Além disso, as requisições que exigem autenticação devem incluir o token JWT no cabeçalho Authorization, seguindo as melhores práticas de segurança.

Documentação Extensa via Swagger: A API é documentada de forma extensa e detalhada usando o Swagger, uma ferramenta de documentação de API amplamente utilizada. Isso permite que os desenvolvedores compreendam facilmente como interagir com a API, quais endpoints estão disponíveis e quais parâmetros são necessários para cada requisição.

Validações de Entrada: A API implementa validações de entrada em todas as requisições para garantir que os dados fornecidos pelos usuários sejam válidos e seguros. Isso ajuda a prevenir ataques de injeção de SQL, XSS (Cross-Site Scripting) e outros tipos de ataques comuns.

Servidores Hospedados

  • O servidor backend da API está hospedado no Heroku.
  • O servidor frontend está hospedado no Netlify.
  • O servidor DBaaS está hospedado na Hostinger.

Repositório Utilizado:

O repositório utilizado para o projeto foi hospedado no GitHub.

desafio-api-sistemas's People

Contributors

marco0antonio0 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.