Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blog API

基于 Go 语言的博客后端 API,采用经典分层架构。

技术栈

  • 框架:Gin
  • 数据库:MySQL + GORM
  • 缓存:Redis
  • 认证:JWT
  • 日志:Zap
  • 部署:Docker + Docker Compose

项目结构

``` blog-api/ ├── cmd/ # 程序入口 ├── internal/ │ ├── handler/ # HTTP 处理层 │ ├── service/ # 业务逻辑层 │ ├── repository/ # 数据库操作层 │ └── model/ # 数据模型 ├── pkg/ │ ├── config/ # 配置与初始化 │ ├── middleware/ # 中间件 │ └── response/ # 统一响应格式 ├── logs/ # 日志文件 ├── Dockerfile └── docker-compose.yml ```

快速启动

1. 克隆项目

```bash git clone https://github.com/tusugit/blog-api.git cd blog-api ```

2. 配置文件

```bash cp config.example.yaml config.yaml

编辑 config.yaml 填入你的数据库密码和 JWT 密钥

```

3. 启动依赖服务

```bash docker-compose up -d mysql redis ```

4. 运行项目

```bash go run cmd/main.go ```

API 接口

用户模块

方法 路径 说明 是否需要登录
POST /api/v1/register 用户注册
POST /api/v1/login 用户登录
GET /api/v1/profile 获取个人信息

文章模块

方法 路径 说明 是否需要登录
GET /api/v1/posts 获取文章列表(分页)
GET /api/v1/posts/:id 获取文章详情
POST /api/v1/posts 创建文章
PUT /api/v1/posts/:id 更新文章
DELETE /api/v1/posts/:id 删除文章

请求示例

注册 ```json POST /api/v1/register { "username": "testuser", "password": "123456", "email": "test@example.com" } ```

登录 ```json POST /api/v1/login { "username": "testuser", "password": "123456" } ```

创建文章(需要 Authorization: Bearer ) ```json POST /api/v1/posts { "title": "文章标题", "content": "文章内容" } ```

主要特性

  • JWT 身份认证,Token 有效期可配置
  • bcrypt 密码加密存储
  • Redis 缓存热点文章,缓存命中时无 SQL 查询
  • 文章操作权限校验,只有作者可修改和删除
  • Zap 结构化日志,同时输出到终端和文件
  • 统一响应格式 {"code": 0, "message": "success", "data": {}}

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages