当前位置: 首页 > news >正文

web第八次作业

一、接口文档

1. 管理员登录

1.1 管理员登录

基本信息

请求参数

格式:application/x-www-form-urlencoded

参数名类型是否必须备注
usernamestring必须管理员账号
passwordstring必须管理员密码

请求示例

username=admin&password=123456

响应数据

格式: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图书ID
namestring书名
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?keyword=Java

响应数据

格式: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必须图书ID
namestring必须书名
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读者ID
usernamestring登录用户名
namestring姓名
phonestring电话
emailstring邮箱
idCardstring身份证号
enabledboolean是否启用

响应示例

json

{ "code": 200, "message": "success", "data": [ { "id": 1, "username": "zhangsan", "name": "张三", "phone": "13800001111", "email": "zhangsan@email.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": "wangwu@email.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必须图书ID
readerIdnumber必须读者ID

请求示例

bookId=1&readerId=1

响应示例

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

请求示例

recordId=1

响应示例

json

{ "code": 200, "message": "还书成功", "data": null }

4.3 查询借阅记录

基本信息

项目内容
请求路径/api/borrow/list
请求方式GET
接口描述查询所有借阅记录

请求参数

响应数据

参数名类型备注
idnumber记录ID
bookIdnumber图书ID
readerIdnumber读者ID
bookNamestring图书名称
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必须读者密码

请求示例

username=zhangsan&password=123456

响应示例

成功:redirect:/front/index
失败:redirect:/front/login


5.2 读者注册

基本信息

项目内容
请求路径/front/register
请求方式POST
接口描述读者注册

请求参数

格式:application/x-www-form-urlencoded

参数名类型是否必须备注
namestring必须姓名
usernamestring必须登录账号
passwordstring必须密码
idCardstring必须身份证号
phonestring非必须电话

请求示例

name=王五&username=wangwu&password=123456&idCard=110101199003031234

响应示例

成功: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

三、增删改查页面


http://www.jsqmd.com/news/1077428/

相关文章:

  • 【课程设计/毕业设计】基于 Django 的轻量化基层智能医疗辅助系统的设计与实现 基于 Django 的用药提醒智能医疗辅助平台基于 Django 的病症初筛智能医疗辅助【附源码、数据库、万字文档】
  • 初识SELinux
  • TIDAL无损音乐下载终极指南:如何免费获取24-bit/192kHz高解析度音频
  • 身份证遗失声明怎么写?身份证遗失声明登报怎么办?
  • Haystack Agentic Workflow实战:构建可调试、可审计的智能体工作流
  • 具有二维出瞳扩展和人眼模型复杂光波导系统
  • 终极Windows老游戏兼容解决方案:如何让经典游戏在Win10/11完美运行
  • Lodash原型链污染漏洞实战验证:从原理到AWVS报告深度解析
  • 3步打造你的低成本AI眼镜:OpenGlass开源智能眼镜完整指南
  • HTTP 协议基础
  • 打包溯源视频=东南亚海外仓风控刚需,这4个用途90%的人不知道
  • 2026年三款手机变声器,音质效果好?
  • 腾讯 AI 助手 Marvis 登陆 App Store 全量覆盖,多模式与特色功能提升效率保护隐私
  • 外呼型销售机器人及轻量级模型应用方案
  • Chromatic深度解析:终极内存注入、函数拦截与调试工具实战指南
  • SMUDebugTool完整指南:免费AMD Ryzen硬件调试工具快速上手
  • ncmdump终极指南:5秒解锁网易云NCM加密音乐,无损转换MP3/FLAC
  • 手把手教你用VMware Workstation快速搭建Redis 7.2集群:5分钟完成6节点部署(含docker-compose兼容版)
  • 在开发项目的注意点
  • 自由生图是什么?如何用AI作图搞定高转化营销图?
  • Android自动打卡终极方案:DailyTask完整使用指南与远程控制技巧
  • 终极视频修复指南:5分钟免费拯救损坏的MP4/MOV文件
  • 前端组件库开发指南
  • 2026年6月汽修店引流亲测有效案例
  • Spring Framework:Java 企业级开发的底座
  • 2026年7款学术AI工具横向测评:从AI检索到AI写作,全链路能力对比与选型指南
  • 暑假40天零基础逆袭机器学习!大学生保姆级自学路线(可落地、可复盘、可写简历)
  • 新闻摘要的抽象生成:从抽取式到NLP模型重写实践
  • Weka零代码实现甲状腺疾病分类预测
  • 3步掌握TIDAL无损音乐下载:从零到精通的完整指南