LeoBabaresco/banco-api
GitHub: LeoBabaresco/banco-api
一个使用 Go 和 PostgreSQL 构建的银行操作 REST API,提供账户管理与存取款、转账等核心银行交易功能。
Stars: 1 | Forks: 0
# 🏦 Banco API
使用 **Go** 开发并以 **PostgreSQL** 为数据库的银行操作 REST API。
## 🚀 技术栈
- Go 1.22
- PostgreSQL 16
- Docker
- CSRF 保护
## 📋 功能
- 创建账户(个人或法人)
- 查询余额
- 存款
- 取款
- 账户间转账
- 注销账户
## 🗄️ 项目结构
banco-api/
├── cmd/main.go
├── internal/
│ ├── db/db.go
│ ├── handlers/conta.go
│ ├── middleware/csrf.go
│ └── models/models.go
└── migrations/
├── 001_create_tables.up.sql
└── 001_create_tables.down.sql
## ⚙️ 运行方式
### 前置条件
- Go 1.22+
- Docker
### 1. 启动数据库
```
docker run -d --name banco-postgres -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=banco_db -p 5432:5432 postgres:16
```
### 2. 运行服务器
```
go run ./cmd/main.go
```
## 🔒 CSRF 保护
所有写操作都需要在 `X-CSRF-Token` 请求头中提供 CSRF token。
获取 token:
GET /csrf-token
## 📡 路由
| 方法 | 路由 | 描述 |
|--------|------|-----------|
| POST | `/conta` | 创建账户 |
| GET | `/conta/{id}/saldo` | 查询余额 |
| POST | `/conta/{id}/deposito` | 存款 |
| POST | `/conta/{id}/saque` | 取款 |
| POST | `/conta/transferencia` | 转账 |
| DELETE | `/conta/{id}` | 注销账户 |
标签:CSRF防护, Docker, EVTX分析, Go, PostgreSQL, RESTful API, Ruby工具, Syscall, Web开发, 安全防御评估, 提示词优化, 日志审计, 测试用例, 请求拦截, 金融业务