博客系统——VBLOG_项目工程框架搭建

VBLOG_项目工程框架搭建

一、架构设计

采用前后端分离架构设计:

api:后端接口服务

  golang 开发的 restful 接口

  使用 mysql 做数据存储

web:vue3 前端框架

  前端框架: vue3,vue-router

  ui组件:arco.design(头条开源组件库)

二、接口设计

### 功能接口

2.1、管理员

    1. 文章上传接口
      1. 标题
      2. 标签
      3. 内容(后期搞个oss做图床)
    2. 文章管理接口
      1. 创建文章(Create),需要认证后才能执行
        1. URI: http://localhost:/vblog/api/v1/blogs/:blog_id
        2. Method: POST
        3. Body: Blog创建对象
      2. 删除文章(Delete),需要认证后才能执行
        1. URI: http://localhost:/vblog/api/v1/blogs/:blog_id
        2. Method: DELETE
      3. 更新文章(Update),需要认证后才能执行
        1. URI: http://localhost:/vblog/api/v1/blogs/:blog_id
        2. Method: PUT(全量更新)/PATH(部分更新)
      4. 文章列表(List),无认证接口
        1. URI: http://localhost:/vblog/api/v1/blogs/
        2. Method: GET
        3. Params:
          1. page_size: 分页的大小,默认20个
          2. page_number: 页码,默认第一页
          3. status: 草稿(管理员才能查)/发布(管理员/浏览人员)
          4. keywords: 关键字搜索
      5. 文章详情(Get),无认证接口
        1. URI: http://localhost/vblog/api/v1/blogs/:blog_id
        2. Method: GET
      6. 文章发布:修改文章的状态发布
        1. URL: http://localhost:/vblog/api/v1/blogs/:blog_id/status
        2. Method: POST
        3. Body: 状态名称
    3. 标签管理接口
      1. 添加标签(Create),需要认证才能执行
        1. URI: http://localhost:/vblog/api/v1/tags/
        2. Method: POST
      2. 删除标签(Delete),需要认证才能执行
        1. URI: http://localhost:/vblog/api/v1/tags/
        2. Method: DELETE
        3. Params:
          1. blog_

2.2、浏览用户

    1. 文章上传接口
      1. 标题
      2. 标签
      3. 内容(后期搞个oss做图床)
    2. 文章管理接口
      1. 创建文章(Create),需要认证后才能执行
        1. URI: http://localhost:/vblog/api/v1/blogs/:blog_id
        2. Method: POST
        3. Body: Blog创建对象
      2. 删除文章(Delete),需要认证后才能执行
        1. URI: http://localhost:/vblog/api/v1/blogs/:blog_id
        2. Method: DELETE
      3. 更新文章(Update),需要认证后才能执行
        1. URI: http://localhost:/vblog/api/v1/blogs/:blog_id
        2. Method: PUT(全量更新)/PATH(部分更新)
      4. 文章列表(List),无认证接口
        1. URI: http://localhost:/vblog/api/v1/blogs/
        2. Method: GET
        3. Params:
          1. page_size: 分页的大小,默认20个
          2. page_number: 页码,默认第一页
          3. keywords: 关键字搜索
      5. 文章详情(Get),无认证接口
        1. URI: http://localhost/vblog/api/v1/blogs/:blog_id
        2. Method: GET
      6. 文章发布:修改文章的状态发布
        1. URL: http://localhost:/vblog/api/v1/blogs/:blog_id/status
        2. Method: POST
        3. Body: 状态名称
    3. 标签管理接口
      1. 添加标签(Create),需要认证才能执行
        1. URI: http://localhost:/vblog/api/v1/tags/
        2. Method: POST
      2. 删除标签(Delete),需要认证才能执行
        1. URI: http://localhost:/vblog/api/v1/tags/
        2. Method: DELETE

三、原型设计

四、后端API开发

 五、数据库设计

  共 2 张表

mysql> show create database vblog;
+----------+-------------------------------------------------------------------+
| Database | Create Database                                                   |
+----------+-------------------------------------------------------------------+
| vblog    | CREATE DATABASE `vblog` /*!40100 DEFAULT CHARACTER SET utf8mb4 */ |
+----------+-------------------------------------------------------------------+
1 row in set (0.02 sec)

 ----------------------------------------

  表 blog: 用于存储文章

    id: 博客ID

    title_img: 文章的标题图片(oss的地址)

    title_name: 文章的标题

    sub_title: 子标签

    content: 博客内容

    sumary: 摘要

    author: 文章的作者

    creat_at: 创建时间

    update_at: 更新时间

    publish_at:发布时间

    status: 草稿/发布

| blog  | CREATE TABLE `blog` (
  `id` int(11) NOT NULL COMMENT '博客ID',
  `title_img` text NOT NULL COMMENT '标题的图片',
  `title_name` varchar(255) NOT NULL COMMENT '标题的名称',
  `sub_title` text NOT NULL COMMENT '子标题',
  `content` text NOT NULL COMMENT '文章的内容',
  `author` varchar(255) NOT NULL COMMENT '文章作者',
  `create_at` int(11) NOT NULL COMMENT '创建时间(时间戳)',
  `update_at` int(11) NOT NULL COMMENT '更新时间',
  `publish_at` int(11) NOT NULL COMMENT '发布时间',
  `status` tinyint(1) NOT NULL COMMENT '0: 草稿 ; 1:发布',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |

  表 tag: 用于存储文章标签

    blog_id: 关联的博客ID

    key: 标签的名称

    value: 标签的value

    color: 标签的颜色

    create_at: 创建的时间

| tag   | CREATE TABLE `tag` (
  `key` varchar(255) NOT NULL COMMENT '标签的名称',
  `value` varchar(255) NOT NULL COMMENT '标签的值',
  `blog_id` int(11) NOT NULL COMMENT '关联的文章',
  `create_at` int(11) NOT NULL COMMENT '创建时间',
  `color` varchar(255) NOT NULL COMMENT '标签的颜色',
  UNIQUE KEY `idx_id` (`key`,`value`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |

 

  

 

  

 

posted @ 2023-03-31 19:55  左扬  阅读(133)  评论(0编辑  收藏  举报
levels of contents