初入后端:上传文档小项目

1.1k 词

写这个项目的时候本来用来理清需求和思路, 后来稍微添了点就顺便出来一份规范点的易上手文档,仅供参考

存储技术文档后端项目:

你可能需要的文档:

要求:

  • 系统需求: 支持 Markdown 文件的上传、元数据存储以及权限化的访问管理

  • 用户与权限: 支持基础的JWT认证, 角色权限可以分成User/Admin

  • 文档管理:

    • 用户可以上传 .md 文件:
      • 文件大小限制在 5mb

      • 支持分页查询

      • 支持通过文件名模糊搜索, 查询返回文档元数据

      • 后端需要读取 Markdown 的前 200 个字符作为“摘要”存入数据库字段。如果内容少于 10 个字符,视为无效文档,拒绝上传。此处考虑事务一致性

技术栈:

(maven)
Spring Boot + Spring Data JPA + PostgreSQL

My solutions:

  • 文档内容存文件,元数据存数据库

My steps:

  1. 实现上传md文件:

    • 文件blobs与元数据commits分离
    • 将commit类接入数据库表
    • upload接口实现:
      • 文件blob写入到后端文件夹
      • 创建文件对应的元数据对象commit,然后把它写入数据库
  2. 实现JWT认证:

    1. 引入JWT依赖
    2. 生成Token
    3. 创建拦截器:解析验证Token
      (拦截器创建之后,需要将拦截器注册到Spring Boot中)
  3. 实现用户系统:

    1. 将User类接入数据库表
    2. 实现account接口:
      1. 登录接口:接受username, password参数, 比对数据库中的
      2. 注册接口:创建user类并写入数据库
  • Others:
    • 模糊搜索的实现使用Spring Data JPA自带关键词查询方法

notes!

  • User类接入数据库表时不要用 user 当表名,user 为PostgreSQL 的关键字,替换表名使用@Table(name = “users”)
  • 对于Spring Data JPA自带的Repository方法名,必须和实体字段名 一致(区分大小写) ex: Spring Data JPA自带关键词查询方法