这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天
以blog项目为例
目录结构
blog-service
├── configs
├── docs
├── global
├── internal
│ ├── dao
│ ├── middleware
│ ├── model
│ ├── routers
│ └── service
├── pkg
├── storage
├── scripts
└── third_party
-
configs:配置文件。
-
docs:文档集合。
-
global:全局变量。
-
internal:内部模块。
- dao:数据访问层(Database Access Object),所有与数据相关的操作都会在 dao 层进行,例如 MySQL、ElasticSearch 等。
- middleware:HTTP 中间件。
- model:模型层,用于存放 model 对象。
- routers:路由相关逻辑处理。
- service:项目核心业务逻辑。
-
pkg:项目相关的模块包。
-
storage:项目生成的临时文件。
-
scripts:各类构建,安装,分析等操作的脚本。
-
third_party:第三方的资源工具,例如 Swagger UI。
数据库
数据库包含两张表,分别是文章表,标签表
路由
在 RESTful API 中 HTTP 方法对应的行为动作分别如下:
- GET:读取/检索动作。
- POST:新增/新建动作。
- PUT:更新动作,用于更新一个完整的资源,要求为幂等。
- PATCH:更新动作,用于更新某一个资源的一个组成部分,也就是只需要更新该资源的某一项,就应该使用 PATCH 而不是 PUT,可以不幂等。
- DELETE:删除动作。
文章标签API
| 功能 | HTTP 方法 | 路径 |
|---|---|---|
| 新增标签 | POST | /tags |
| 删除指定标签 | DELETE | /tags/:id |
| 更新指定标签 | PUT | /tags/:id |
| 获取标签列表 | GET | /tags |
文章API
| 功能 | HTTP 方法 | 路径 |
|---|---|---|
| 新增文章 | POST | /articles |
| 删除指定文章 | DELETE | /articles/:id |
| 更新指定文章 | PUT | /articles/:id |
| 获取指定文章 | GET | /articles/:id |
| 获取文章列表 | GET | /articles |