
一、接口文档1. 管理员登录1.1 管理员登录基本信息请求参数格式application/x-www-form-urlencoded参数名类型是否必须备注usernamestring必须管理员账号passwordstring必须管理员密码请求示例usernameadminpassword123456响应数据格式application/json参数名类型是否必须备注codenumber必须200成功500失败messagestring非必须提示信息响应示例{ code: 200, message: success }2. 图书管理2.1 查询所有图书基本信息项目内容请求路径/api/book/list请求方式GET接口描述查询所有图书列表请求参数无响应数据格式application/json参数名类型是否必须备注codenumber必须200成功500失败messagestring非必须提示信息dataarray非必须图书列表data字段说明参数名类型备注idnumber图书IDnamestring书名authorstring作者publisherstring出版社isbnstringISBN号categorystring分类stocknumber库存数量响应示例{ code: 200, message: success, data: [ { id: 1, name: Java编程思想, author: Bruce Eckel, publisher: 机械工业出版社, isbn: 978-7-111-12345-6, category: 编程, stock: 10 } ] }2.2 搜索图书基本信息项目内容请求路径/api/book/search请求方式GET接口描述根据关键字搜索图书请求参数格式application/x-www-form-urlencoded参数名类型是否必须备注keywordstring必须搜索关键字书名/作者请求示例/api/book/search?keywordJava响应数据格式application/json参数名类型是否必须备注codenumber必须200成功500失败messagestring非必须提示信息dataarray非必须匹配的图书列表响应示例{ code: 200, message: success, data: [ { id: 1, name: Java编程思想, author: Bruce Eckel, publisher: 机械工业出版社, stock: 10 } ] }2.3 添加图书基本信息项目内容请求路径/api/book/add请求方式POST接口描述添加新图书请求参数格式application/json参数名类型是否必须备注namestring必须书名authorstring必须作者publisherstring非必须出版社isbnstring非必须ISBN号categorystring非必须分类stocknumber必须库存数量请求示例json{ name: Spring Boot实战, author: Craig Walls, publisher: 人民邮电出版社, isbn: 978-7-115-23456-7, category: 编程, stock: 8 }响应数据格式application/json参数名类型是否必须备注codenumber必须200成功500失败messagestring非必须提示信息datastring非必须附加信息响应示例json{ code: 200, message: 添加成功, data: null }2.4 更新图书基本信息项目内容请求路径/api/book/update请求方式PUT接口描述更新图书信息请求参数格式application/json参数名类型是否必须备注idnumber必须图书IDnamestring必须书名authorstring必须作者publisherstring非必须出版社isbnstring非必须ISBN号categorystring非必须分类stocknumber必须库存数量请求示例json{ id: 1, name: Java编程思想第4版, author: Bruce Eckel, publisher: 机械工业出版社, isbn: 978-7-111-12345-6, category: 编程, stock: 5 }响应示例json{ code: 200, message: 更新成功, data: null }2.5 删除图书基本信息项目内容请求路径/api/book/delete/{id}请求方式DELETE接口描述根据ID删除图书请求参数参数名类型是否必须备注idnumber必须图书ID路径参数请求示例DELETE /api/book/delete/1响应示例json{ code: 200, message: 删除成功, data: null }3. 读者管理3.1 查询所有读者基本信息项目内容请求路径/api/reader/list请求方式GET接口描述查询所有读者列表请求参数无响应数据参数名类型备注idnumber读者IDusernamestring登录用户名namestring姓名phonestring电话emailstring邮箱idCardstring身份证号enabledboolean是否启用响应示例json{ code: 200, message: success, data: [ { id: 1, username: zhangsan, name: 张三, phone: 13800001111, email: zhangsanemail.com, idCard: 110101199001011234, enabled: true } ] }3.2 添加读者基本信息项目内容请求路径/api/reader/add请求方式POST接口描述添加新读者请求参数格式application/json参数名类型是否必须备注usernamestring必须登录用户名namestring必须姓名passwordstring必须密码phonestring非必须电话emailstring非必须邮箱idCardstring必须身份证号请求示例json{ username: wangwu, name: 王五, password: 123456, phone: 13800003333, email: wangwuemail.com, idCard: 110101199003031234 }响应示例json{ code: 200, message: 添加成功, data: null }3.3 删除读者基本信息项目内容请求路径/api/reader/delete/{id}请求方式DELETE接口描述根据ID删除读者请求示例DELETE /api/reader/delete/1响应示例json{ code: 200, message: 删除成功, data: null }4. 借阅管理4.1 借书基本信息项目内容请求路径/api/borrow/borrow请求方式POST接口描述借阅图书请求参数格式application/x-www-form-urlencoded参数名类型是否必须备注bookIdnumber必须图书IDreaderIdnumber必须读者ID请求示例bookId1readerId1响应示例json{ code: 200, message: 借书成功, data: null }错误响应json{ code: 500, message: 借书失败请检查库存或是否已借, data: null }4.2 还书基本信息项目内容请求路径/api/borrow/return请求方式POST接口描述归还图书请求参数格式application/x-www-form-urlencoded参数名类型是否必须备注recordIdnumber必须借阅记录ID请求示例recordId1响应示例json{ code: 200, message: 还书成功, data: null }4.3 查询借阅记录基本信息项目内容请求路径/api/borrow/list请求方式GET接口描述查询所有借阅记录请求参数无响应数据参数名类型备注idnumber记录IDbookIdnumber图书IDreaderIdnumber读者IDbookNamestring图书名称readerNamestring读者姓名borrowDatestring借阅日期dueDatestring应还日期returnDatestring归还日期statusstring状态borrowed/returned/overdue响应示例json{ code: 200, message: success, data: [ { id: 1, bookId: 1, readerId: 1, bookName: Java编程思想, readerName: 张三, borrowDate: 2026-06-24 14:19:58, dueDate: 2026-07-01 14:19:58, returnDate: null, status: borrowed } ] }4.4 查询未归还记录基本信息项目内容请求路径/api/borrow/unreturned请求方式GET接口描述查询所有未归还的借阅记录响应示例json{ code: 200, message: success, data: [ { id: 1, bookName: Java编程思想, readerName: 张三, borrowDate: 2026-06-24 14:19:58, dueDate: 2026-07-01 14:19:58, status: borrowed } ] }5. 读者端接口前台5.1 读者登录基本信息项目内容请求路径/front/loginCheck请求方式POST接口描述读者登录验证请求参数格式application/x-www-form-urlencoded参数名类型是否必须备注usernamestring必须读者账号passwordstring必须读者密码请求示例usernamezhangsanpassword123456响应示例成功redirect:/front/index失败redirect:/front/login5.2 读者注册基本信息项目内容请求路径/front/register请求方式POST接口描述读者注册请求参数格式application/x-www-form-urlencoded参数名类型是否必须备注namestring必须姓名usernamestring必须登录账号passwordstring必须密码idCardstring必须身份证号phonestring非必须电话请求示例name王五usernamewangwupassword123456idCard110101199003031234响应示例成功redirect:/front/login失败redirect:/front/register带错误信息5.3 读者借书基本信息项目内容请求路径/front/borrow请求方式POST接口描述读者自助借书请求参数格式application/x-www-form-urlencoded参数名类型是否必须备注bookIdnumber必须图书ID响应示例json{ code: 200, message: 借书成功, data: null }5.4 读者还书基本信息项目内容请求路径/front/return请求方式POST接口描述读者自助还书请求参数格式application/x-www-form-urlencoded参数名类型是否必须备注recordIdnumber必须借阅记录ID响应示例json{ code: 200, message: 还书成功, data: null }二数据库表CREATE TABLE admin ( id INT IDENTITY(1,1) PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(100) NOT NULL, created_at DATETIME DEFAULT GETDATE() ); GO CREATE TABLE book ( id INT IDENTITY(1,1) PRIMARY KEY, name VARCHAR(100) NOT NULL, author VARCHAR(50) NOT NULL, publisher VARCHAR(100), isbn VARCHAR(20), category VARCHAR(50), location VARCHAR(50), stock INT DEFAULT 0, created_at DATETIME DEFAULT GETDATE() ); GO CREATE TABLE reader ( id INT IDENTITY(1,1) PRIMARY KEY, username VARCHAR(50) NULL UNIQUE, name VARCHAR(50) NOT NULL, phone VARCHAR(20), email VARCHAR(100), id_card VARCHAR(18) UNIQUE, password VARCHAR(100) NULL, enabled BIT DEFAULT 1, created_at DATETIME DEFAULT GETDATE() ); GO CREATE TABLE borrow_record ( id INT IDENTITY(1,1) PRIMARY KEY, book_id INT NOT NULL, reader_id INT NOT NULL, borrow_date DATETIME DEFAULT GETDATE(), due_date DATETIME, return_date DATETIME, status VARCHAR(20) DEFAULT borrowed, fine DECIMAL(10,2) DEFAULT 0, FOREIGN KEY (book_id) REFERENCES book(id), FOREIGN KEY (reader_id) REFERENCES reader(id) ); GO 测试数据 管理员 INSERT INTO admin (username, password) VALUES (admin, 123456); GO 图书 INSERT INTO book (name, author, publisher, category, stock) VALUES (Java编程思想, Bruce Eckel, 机械工业出版社, 编程, 10), (Spring Boot实战, Craig Walls, 人民邮电出版社, 编程, 8), (深入理解Java虚拟机, 周志明, 机械工业出版社, 编程, 5); GO 读者 INSERT INTO reader (username, name, phone, id_card, password, enabled) VALUES (zhangsan, 张三, 13800001111, 110101199001011234, 123456, 1), (lisi, 李四, 13800002222, 110101199002021234, 123456, 1); GO 借阅记录 INSERT INTO borrow_record (book_id, reader_id, due_date) VALUES (1, 1, DATEADD(day, 7, GETDATE())); GO三、增删改查页面