{"id":18285640,"url":"https://github.com/luizfelipe9627/api-products-cd","last_synced_at":"2026-04-15T05:32:00.816Z","repository":{"id":215953419,"uuid":"739616248","full_name":"luizfelipe9627/api-products-cd","owner":"luizfelipe9627","description":"Primeira atividade passada pelo Campinho Digital para treinar a criação de API utilizando Node.js e Express no Back.","archived":false,"fork":false,"pushed_at":"2024-01-07T15:49:44.000Z","size":53,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-09T06:17:10.180Z","etag":null,"topics":["expressjs","javascript-es6","nodejs","npm","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luizfelipe9627.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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-01-06T02:42:49.000Z","updated_at":"2024-01-07T17:52:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"dad60f02-634c-42a6-b205-6a1b2ef58669","html_url":"https://github.com/luizfelipe9627/api-products-cd","commit_stats":null,"previous_names":["luizfelipe9627/api-products-cd"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/luizfelipe9627/api-products-cd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luizfelipe9627%2Fapi-products-cd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luizfelipe9627%2Fapi-products-cd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luizfelipe9627%2Fapi-products-cd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luizfelipe9627%2Fapi-products-cd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luizfelipe9627","download_url":"https://codeload.github.com/luizfelipe9627/api-products-cd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luizfelipe9627%2Fapi-products-cd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31828531,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T18:05:02.291Z","status":"online","status_checked_at":"2026-04-15T02:00:06.175Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["expressjs","javascript-es6","nodejs","npm","swagger-ui"],"created_at":"2024-11-05T13:17:18.786Z","updated_at":"2026-04-15T05:32:00.788Z","avatar_url":"https://github.com/luizfelipe9627.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Documentação da API\n\n\u003cdiv display=\"flex\"\u003e\n  \u003cimg src=\"https://img.shields.io/static/v1?label=Node\u0026message=20.10.0\u0026color=green\u0026style=for-the-badge\u0026logo=node.js\"/\u003e \n  \u003cimg src=\"https://img.shields.io/static/v1?label=Express\u0026message=4.18.2\u0026color=blue\u0026style=for-the-badge\u0026logo=express\"/\u003e \n  \u003cimg src=\"https://img.shields.io/static/v1?label=Swagger\u0026message=5.0.0\u0026color=orange\u0026style=for-the-badge\u0026logo=swagger\"/\u003e\n  \u003cimg src=\"https://img.shields.io/static/v1?label=License\u0026message=MIT\u0026color=blueviolet\u0026style=for-the-badge\"/\u003e\n  \u003cimg src=\"https://img.shields.io/static/v1?label=Version\u0026message=1.0.0\u0026color=important\u0026style=for-the-badge\"/\u003e\n  \u003cimg src=\"https://img.shields.io/static/v1?label=Author\u0026message=Luiz%20Felipe%20Silva\u0026color=blue\u0026style=for-the-badge\"/\u003e\n\u003c/div\u003e\n\n\u003cimg src=\"./src/assets/swagger.png\" alt=\"Swagger\" width=\"100%\"/\u003e\n\n## Sumário\n\n- [Introdução](#introdução)\n- [Requisitos](#requisitos)\n- [Instalação](#instalação)\n- [Visão geral da API](#visão-geral-da-api)\n- [Documentação do Swagger](#documentação-do-swagger)\n- [Recursos principais e Exemplos](#recursos-principais-e-exemplos)\n  - [1. Listar produtos](#1-listar-produtos)\n  - [2. Criar produto](#2-criar-produto)\n  - [3. Obter produto](#3-obter-produto)\n  - [4. Atualizar produto](#4-atualizar-produto)\n  - [5. Deletar produto](#5-deletar-produto)\n\n## Introdução\n\nBem-vindo à documentação da API Products! Esta documentação fornece informações detalhadas sobre como usar a API, incluindo endpoints disponíveis, parâmetros aceitos, códigos de status e exemplos práticos. A documentação Swagger está disponível para uma visão mais interativa da API.\n\n## Requisitos\n\n- Node.js 14.15.1 ou superior.\n- NPM 6.14.8 ou superior.\n\n## Instalação\n\nPara instalar e executar o projeto, siga os passos abaixo:\n\n1. Clone o repositório\n\n```bash\n  git clone https://github.com/luizfelipe9627/api-products-cd\n```\n\n2. Instale as dependências\n\n```bash\n  npm install\n```\n\n3. Execute o projeto\n\n```bash\n  npm run start\n```\n\n4. Acesse a documentação da API\n\n```bash\nhttp://localhost:3000/api-docs\n```\n\n## Visão geral da API\n\nA API foi projetada para ser fácil e simples de usar. Abaixo estão alguns pontos importantes para começar:\n\n- **Base URL**: O endpoint base para todas as chamadas da API é [http://localhost:3000].\n- **Autenticação**: A API não requer autenticação.\n- **Estrutura da resposta**: As respostas da API são retornadas em formato JSON. Os exemplos de resposta são fornecidos na documentação abaixo para cada endpoint.\n- **Códigos de status**: A API retorna os seguintes códigos de status padrão: 200, 201, 400, 404 e 500. Códigos de status personalizados podem ser retornados em determinadas situações.\n\n## Documentação do Swagger\n\nExplore e teste a API de forma interativa usando a documentação local do Swagger. Acesse [link para a documentação do Swagger](http://localhost:3000/api-docs) para obter uma visão visual completa dos endpoints, parâmetros e exemplos. Só é possível acessar a documentação do Swagger localmente após a instalação e execução do projeto.\n\n## Recursos principais e Exemplos\n\n### 1. Listar produtos\n\nRetorna uma lista de todos os produtos.\n\n- **Endpoint**: `/products`\n- **Método**: `GET`\n\n**Exemplo de resposta:**\n\n```json\n[\n  {\n    \"id\": 1,\n    \"name\": \"Smartphone\",\n    \"price\": 499.99\n  },\n  {\n    \"id\": 2,\n    \"name\": \"Notebook\",\n    \"price\": 1299.99\n  }\n]\n```\n\n### 2. Criar produto\n\nCria um novo produto.\n\n- **Endpoint**: `/products`\n- **Método**: `POST`\n\n**Exemplo de corpo da solicitação:**\n\n```json\n{\n  \"name\": \"Mouse sem fio\",\n  \"price\": 29.99\n}\n```\n\n**Exemplo de resposta:**\n\n```json\n{\n  {\n  \"id\": 3,\n  \"name\": \"Mouse sem fio\",\n  \"price\": 29.99,\n}\n}\n```\n\n### 3. Obter produto\n\nRetorna um produto específico.\n\n- **Endpoint**: `/products/:id`\n- **Método**: `GET`\n\n**Exemplo de resposta:**\n\n```json\n{\n  \"id\": 1,\n  \"name\": \"Smartphone\",\n  \"price\": 499.99\n}\n```\n\n### 4. Atualizar produto\n\nAtualiza um produto específico.\n\n- **Endpoint**: `/products/:id`\n- **Método**: `PUT`\n\n**Exemplo de corpo da solicitação:**\n\n```json\n{\n  \"name\": \"Notebook\",\n  \"price\": 1299.99\n}\n```\n\n**Exemplo de resposta:**\n\n```json\n{\n  \"id\": 2,\n  \"name\": \"Video Game\",\n  \"price\": 1999.99\n}\n```\n\n### 5. Deletar produto\n\nDeleta um produto específico.\n\n- **Endpoint**: `/products/:id`\n- **Método**: `DELETE`\n\n**Exemplo de resposta:**\n\n```json\n{\n  \"id\": 2,\n  \"name\": \"Video Game\",\n  \"price\": 1999.99,\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluizfelipe9627%2Fapi-products-cd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluizfelipe9627%2Fapi-products-cd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluizfelipe9627%2Fapi-products-cd/lists"}