{"id":28936268,"url":"https://github.com/paulopbi/piadas-api","last_synced_at":"2026-04-10T00:45:03.450Z","repository":{"id":300593546,"uuid":"1006141078","full_name":"paulopbi/piadas-api","owner":"paulopbi","description":"Uma API de piadas, ela retorna várias piadas engraçadas, onde o usuário pode fazer todas as operações de CRUD e elas ficarão salvas no banco de dados MongoDB.","archived":false,"fork":false,"pushed_at":"2025-06-22T15:48:15.000Z","size":30,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-22T16:28:53.508Z","etag":null,"topics":["api","api-rest","bun","cors","crud","express","mit-license","mongodb","mongoose","nosql","odm","typescript"],"latest_commit_sha":null,"homepage":"https://piadas-api.onrender.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paulopbi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2025-06-21T15:30:59.000Z","updated_at":"2025-06-22T15:48:18.000Z","dependencies_parsed_at":"2025-06-22T16:29:53.685Z","dependency_job_id":"f2c953d5-b1af-444d-81a0-2cf44a7ca2a7","html_url":"https://github.com/paulopbi/piadas-api","commit_stats":null,"previous_names":["paulopbi/piadas-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/paulopbi/piadas-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulopbi%2Fpiadas-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulopbi%2Fpiadas-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulopbi%2Fpiadas-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulopbi%2Fpiadas-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paulopbi","download_url":"https://codeload.github.com/paulopbi/piadas-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulopbi%2Fpiadas-api/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261358697,"owners_count":23146674,"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","api-rest","bun","cors","crud","express","mit-license","mongodb","mongoose","nosql","odm","typescript"],"created_at":"2025-06-22T20:08:12.233Z","updated_at":"2025-10-11T14:02:34.381Z","avatar_url":"https://github.com/paulopbi.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"### 🧠 Introdução\n\nBem-vindo à API de Piadas, uma aplicação robusta e bem estruturada desenvolvida para gerenciar e distribuir piadas de forma eficiente. Este projeto foi construído seguindo os princípios de arquitetura **MVC (Model-View-Controller)**, garantindo uma separação clara de responsabilidades e um código organizado. A API segue o padrão **RESTful**, oferecendo endpoints intuitivos e respostas em formato **JSON**, ideais para integração com frontends ou outros serviços.\n\n### 🚀 Tecnologias Utilizadas\n\n- **Bun.js**: Ambiente de execução JavaScript.\n- **Express**: Framework para construção da API.\n- **MongoDB**: Banco de dados NoSQL.\n- **Mongoose**: ODM para MongoDB.\n- **TypeScript**: Superset JavaScript com tipagem.\n- **CORS**: Middleware para permitir requisições entre domínios.\n\n### 📡 Rotas da API\n\n| Rotas                       | Método   | Descrição                    |\n| --------------------------- | -------- | ---------------------------- |\n| `/api/piadas`               | `GET`    | Retorna todas as piadas      |\n| `/api/piadas/:id`           | `GET`    | Retorna uma piada específica |\n| `/api/piadas/criar`         | `POST`   | Cria uma nova piada          |\n| `/api/piadas/deletar/:id`   | `DELETE` | Deleta uma piada             |\n| `/api/piadas/atualizar/:id` | `PUT`    | Atualiza uma piada           |\n\nExemplo de resposta da rota `/piadas/criar`\n\n```json\n{\n  \"message\": \"...\", //mensagem de retorno\n  \"ok\": true, //indica se a requisição foi bem sucedida\n  \"data\": {\n    \"_id\": \"65a1b2c3...\",\n    \"conteudo\": \"...\", //contem a piada\n    \"curtidas\": 0, //total de curtidas\n    \"categorias\": [\"\"], //array de categorias\n    \"criado_em\": \"2023-12-14T12:00:00Z\" //data de criação\n  }\n}\n```\n\n\u003e **Todas as rotas possuem um padrão de resposta semântica, garantindo clareza e entendimento dos desenvolvedores.**\n\n- **Status HTTP**: Semântica clara (200 para sucesso, 404 para não encontrado, 500 para erros internos).\n\n- **Mensagens de Sucesso**: Confirmações detalhadas (ex: \"Piada criada com sucesso!\").\n\n- **Tratamento de Erros**: Mensagens amigáveis e logs para debug (ex: \"Piada não encontrada\").\n\n### 📂 Estrutura de pastas\n\n```textplain\nprojeto/\n├── src/\n│   ├── controllers/    # Lógica das rotas\n│   ├── models/         # Modelos do MongoDB\n│   ├── routes/         # Definição das rotas\n│   └── server.ts       # Configuração do servidor\n├── package.json        # Dependências e scripts\n└── README.md           # Documentação\n```\n\n### 📸 Demonstração da API\n\n![Gif de demonstração do projeto](./public/piadas-api.gif)\n\nNesse gif de demonstração podemos ver o funcionamento da API.\n\n### 📄 Licença\n\n[Este projeto está sob a licença MIT. Clique aqui para ver os detalhes.](./LICENSE)\n\n### 📩 Contato\n\n- **Email**: [paulovictordev16@gmail.com](mailto:paulovictordev16@gmail.com)\n- **GitHub**: [paulopbi](https://github.com/paulopbi)\n- **LinkedIn**: [paulopbi](https://www.linkedin.com/in/paulopbi/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulopbi%2Fpiadas-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaulopbi%2Fpiadas-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulopbi%2Fpiadas-api/lists"}