Skip to content

Commit a442a58

Browse files
authored
Update README.md
1 parent 1517966 commit a442a58

File tree

1 file changed

+166
-1
lines changed

1 file changed

+166
-1
lines changed

README.md

Lines changed: 166 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,166 @@
1-
<h1 align="center">API REST em Go! </h1>
1+
# API-GO: Gerenciamento de Produtos
2+
3+
Este projeto é uma API para gerenciamento de produtos desenvolvida em **Go** utilizando o framework **Gin**. A arquitetura é modular, garantindo maior organização e manutenibilidade.
4+
5+
---
6+
7+
## 🚀 Inicialização do Projeto
8+
9+
### Pré-requisitos
10+
11+
Certifique-se de ter instalado:
12+
- **Golang**: [Instalar Golang](https://go.dev/doc/install)
13+
- **Docker**: [Instalar Docker](https://www.docker.com/products/docker-desktop)
14+
15+
---
16+
17+
### Como executar
18+
19+
1. Clone o projeto e navegue para a pasta:
20+
```bash
21+
git clone https://github.com/usuario/api-go.git
22+
cd api-go
23+
```
24+
25+
2. Configure a conexão com o banco de dados:
26+
Edite as configurações no arquivo `db/conn.go` para refletir suas credenciais.
27+
28+
3. Suba os serviços com Docker:
29+
```bash
30+
docker-compose up
31+
```
32+
33+
4. Acesse a API no endereço:
34+
- `http://localhost:8000`
35+
36+
---
37+
38+
## 📚 Estrutura do Projeto
39+
40+
A estrutura está organizada da seguinte maneira:
41+
42+
```plaintext
43+
API-GO/
44+
├── cmd/
45+
│ └── main.go # Arquivo principal para iniciar a aplicação
46+
├── controller/
47+
│ └── product_controller.go # Controladores responsáveis pelas rotas
48+
├── db/
49+
│ └── conn.go # Configuração e conexão com o banco de dados
50+
├── model/
51+
│ ├── product.go # Modelo do produto
52+
│ └── response.go # Estruturas de resposta para a API
53+
├── repository/
54+
│ └── product_repository.go # Camada de interação com o banco de dados
55+
├── usecase/
56+
│ └── product_usecase.go # Regras de negócio e lógica da aplicação
57+
├── .gitignore # Arquivos ignorados no controle de versão
58+
├── docker-compose.yml # Configuração do Docker Compose
59+
├── Dockerfile # Configuração do container Docker
60+
├── go.mod # Dependências do projeto
61+
├── go.sum # Hash das dependências
62+
└── README.md # Documentação do projeto
63+
```
64+
65+
---
66+
67+
## 📖 Endpoints
68+
69+
### **Ping**
70+
- **GET `/ping`**
71+
- Retorna uma mensagem de teste.
72+
- **Resposta**:
73+
```json
74+
{
75+
"message": "primeiros testes"
76+
}
77+
```
78+
79+
---
80+
81+
### **Produtos**
82+
- **GET `/products`**
83+
- Lista todos os produtos cadastrados.
84+
- **Exemplo de Resposta**:
85+
```json
86+
[
87+
{
88+
"id": 1,
89+
"name": "Produto 1",
90+
"price": 100.00
91+
},
92+
{
93+
"id": 2,
94+
"name": "Produto 2",
95+
"price": 150.00
96+
}
97+
]
98+
```
99+
100+
- **POST `/product`**
101+
- Cria um novo produto.
102+
- **Body**:
103+
```json
104+
{
105+
"name": "Produto Exemplo",
106+
"price": 100.00
107+
}
108+
```
109+
- **Exemplo de Resposta**:
110+
```json
111+
{
112+
"id": 1,
113+
"name": "Produto Exemplo",
114+
"price": 100.00
115+
}
116+
```
117+
118+
- **GET `/product/:productId`**
119+
- Retorna um produto específico com base no ID.
120+
- **Exemplo de Resposta**:
121+
```json
122+
{
123+
"id": 1,
124+
"name": "Produto Exemplo",
125+
"price": 100.00
126+
}
127+
```
128+
129+
- **PUT `/product`**
130+
- Atualiza um produto existente.
131+
- **Body**:
132+
```json
133+
{
134+
"id": 1,
135+
"name": "Produto Atualizado",
136+
"price": 150.00
137+
}
138+
```
139+
- **Exemplo de Resposta**:
140+
```json
141+
{
142+
"id": 1,
143+
"name": "Produto Atualizado",
144+
"price": 150.00
145+
}
146+
```
147+
148+
- **DELETE `/product/:productId`**
149+
- Remove um produto com base no ID.
150+
- **Exemplo de Resposta**:
151+
```json
152+
{
153+
"message": "Produto removido com sucesso"
154+
}
155+
```
156+
157+
---
158+
159+
## 🛠️ Tecnologias Utilizadas
160+
161+
- **Golang**: Linguagem de programação principal.
162+
- **Gin**: Framework leve e rápido para desenvolvimento de APIs.
163+
- **Docker**: Para criação e gerenciamento de containers.
164+
- **PostgreSQL** (ou outro banco relacional): Configurado no módulo `db`.
165+
166+
---

0 commit comments

Comments
 (0)