{"id":18111538,"url":"https://github.com/adrianoleitedasilva/user-api","last_synced_at":"2025-04-06T08:20:11.585Z","repository":{"id":259519567,"uuid":"878100272","full_name":"adrianoleitedasilva/user-api","owner":"adrianoleitedasilva","description":"Esta é uma API RESTful criada em Node.js que permite gerenciar usuários. Ela suporta operações de criação, atualização, exclusão e listagem de usuários. A API utiliza o SQLite como banco de dados por padrão, mas está preparada para ser migrada para MySQL. Além disso, foi configurada com Swagger.","archived":false,"fork":false,"pushed_at":"2024-10-24T19:49:45.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-12T13:56:25.165Z","etag":null,"topics":["api","mysql-database","rest-api","sqlite","swagger-ui"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adrianoleitedasilva.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-24T19:27:27.000Z","updated_at":"2024-10-24T20:07:39.000Z","dependencies_parsed_at":"2024-10-26T06:35:03.468Z","dependency_job_id":null,"html_url":"https://github.com/adrianoleitedasilva/user-api","commit_stats":null,"previous_names":["adrianoleitedasilva/user-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianoleitedasilva%2Fuser-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianoleitedasilva%2Fuser-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianoleitedasilva%2Fuser-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianoleitedasilva%2Fuser-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adrianoleitedasilva","download_url":"https://codeload.github.com/adrianoleitedasilva/user-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247452329,"owners_count":20941077,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","mysql-database","rest-api","sqlite","swagger-ui"],"created_at":"2024-11-01T01:06:10.209Z","updated_at":"2025-04-06T08:20:11.564Z","avatar_url":"https://github.com/adrianoleitedasilva.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# User Management API\n\nEsta é uma API RESTful criada em Node.js que permite gerenciar usuários. Ela suporta operações de criação, atualização, exclusão e listagem de usuários. A API utiliza o SQLite como banco de dados por padrão, mas está preparada para ser migrada para MySQL. Além disso, foi configurada com Swagger para documentação interativa.\n\n## Funcionalidades\n\nA API oferece os seguintes endpoints:\n\n- **GET** `/users`: Lista todos os usuários\n- **POST** `/users`: Cria um novo usuário\n- **PUT** `/users/:id`: Atualiza os dados de um usuário específico\n- **DELETE** `/users/:id`: Deleta um usuário específico\n\n### Dados do Usuário\n\n- `name` (string): Nome do usuário\n- `age` (integer): Idade do usuário\n- `birthdate` (string): Data de nascimento\n- `phone` (string): Telefone\n- `email` (string): E-mail\n- `mother_name` (string): Nome da mãe\n- `father_name` (string): Nome do pai\n- `address` (string): Endereço\n\n## Tecnologias Utilizadas\n\n- **Node.js** - Plataforma de desenvolvimento\n- **Express.js** - Framework para criação da API\n- **SQLite** - Banco de dados relacional utilizado por padrão\n- **MySQL** - Preparado para migração futura\n- **Swagger** - Documentação da API\n\n## Instalação\n\n### Pré-requisitos\n\n- [Node.js](https://nodejs.org/) instalado\n- SQLite ou MySQL configurado (no momento, a API usa SQLite)\n\n### Passos para configurar o projeto\n\n1. Clone o repositório:\n\n```bash\ngit clone https://github.com/adrianoleitedasilva/user-api.git\ncd user-api\n```\n\n2. Instale as dependências:\n\n```bash\nnpm install\n```\n\n3. Configure as variáveis de ambiente no arquivo .env:\n\nCrie um arquivo .env na raiz do projeto com o seguinte conteúdo:\n\n```bash\n# Configurações do banco de dados MySQL (para futura migração)\nDB_HOST=localhost\nDB_USER=root\nDB_PASS=sua_senha\nDB_NAME=user_db\n\n# Configuração do servidor\nPORT=3000\n```\n\n4. Inicie o servidor:\n\n```bash\nnode app.js\n```\n\n5. Rotas da API\n\n### Listar todos os usuários\n- **Rota**: GET /users\n- **Descrição**: Retorna uma lista com todos os usuários cadastrados.\n- **Exemplo de resposta**:\n```json\n[\n  {\n    \"id\": 1,\n    \"name\": \"John Doe\",\n    \"age\": 30,\n    \"birthdate\": \"1994-10-10\",\n    \"phone\": \"123456789\",\n    \"email\": \"john@example.com\",\n    \"mother_name\": \"Jane Doe\",\n    \"father_name\": \"James Doe\",\n    \"address\": \"123 Main St\"\n  }\n]\n```\n\n### Criar um novo usuário\n- **Rota**: POST /users\n- **Descrição**: Cria um novo usuário.\n- **Corpo da requisição**:\n\n```bash\n{\n  \"name\": \"John Doe\",\n  \"age\": 30,\n  \"birthdate\": \"1994-10-10\",\n  \"phone\": \"123456789\",\n  \"email\": \"john@example.com\",\n  \"mother_name\": \"Jane Doe\",\n  \"father_name\": \"James Doe\",\n  \"address\": \"123 Main St\"\n}\n```\n\n### Atualizar um usuário existente\n- **Rota**: PUT /users/:id\n- **Descrição**: Atualiza os dados de um usuário existente.\n- **Parâmetros**:\n  - **id**: ID do usuário a ser atualizado.\n- **Corpo da requisição**: (mesmo formato do POST /users)\n\n### Deletar um usuário\n- **Rota**: DELETE /users/:id\n- **Descrição**: Deleta um usuário específico.\n- **Parâmetros**:\n  - **id**: ID do usuário a ser deletado.\n \n## Documentação da API\nA documentação interativa da API pode ser acessada através do Swagger:\n\n```bash\nURL: http://localhost:3000/api-docs\n```\n\n## Futuras Melhorias\n- Migração para o banco de dados MySQL.\n- Autenticação e autorização dos endpoints.\n- Validação dos dados de entrada.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrianoleitedasilva%2Fuser-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadrianoleitedasilva%2Fuser-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrianoleitedasilva%2Fuser-api/lists"}