一、数据库设计
1,为图片设计一张表来存储图片的相关属性:imageId作为表的自增主键用于查询图片,userId做为用户表的自增主键,用来唯一标识一个用户,imageName,size,contentType,path,uploadTime,md5。
建表语句:
create database if not exists image_system;
use image_system;
drop table if exists `image_table`
create table `image_table`(
image_id int not null primary key auto_increment,
user_id int,
image_name varchar(50),
size bigint,
upload_time varchar(50),
md5 varchar(128),
content_type varchar(50) comment '图片类型',
path varchar(1024)comment'图片录路径'
);
2,为用户设计一张表来存储用户的姓名和密码:userId做为自增主键来标识用户关联图片,name,password.
drop table if exists `user`
CREATE TABLE `user` (
`name` varchar(20) NOT NULL,
`password` varchar(30) NOT NULL,
`userId` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`userId`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
二、服务器API设计-HTTP请求和响应设计
1,查看所有图片
请求:
GET /image HTTP/1.1
响应
HTTP/1.1 200 OK
[
{
"imageId": 1,
"userId":1
"size":2345
"imageName": "1.png",
"contentType": "image/png",
"uploadTime":2020-01-20,
"path":./Image,
"md5": "[md5值]"
}
]
2,根据imagesId查看指定图片
请求:
GET /image?imageId=1 HTTP/1.1
响应:
HTTP/1.1 200 OK
{
"imageId": 1,
"userId":1
"size":2345
"imageName": "1.png",
"contentType": "image/png",
"uploadTime":2020-01-20,
"path":./Image,
"md5": "[md5值]"
}
3,根据imageId删除指定图片
请求:
DELETE /image?imageId=1 HTTP/1.1
响应:
HTTP/1.1 200 OK
{
"ok": true
}
4,根据imageId查看图片内容
请求:
GET /imageShow?imageId=1 HTTP/1.1
响应:
HTTP/1.1 200 OK
content-type: image/png
[响应 body 中为 图片内容 数据]
5,根据图片上传时间查找图片
请求:
GET /sel?time= HTTP/1.1
响应
HTTP/1.1 200 OK
[
{
"imageId": 1,
"userId":1
"size":2345
"imageName": "1.png",
"contentType": "image/png",
"uploadTime":2020-01-20,
"path":./Image,
"md5": "[md5值]"
}
]
5,注册用户
请求:
GET /reg?name=?&password=? HTTP/1.1
响应:
HTTP/1.1 200 OK
{
"ok":true
}
6,用户登录
请求:
GET /login?name=?&password=? HTTP/1.1
响应:
HTTP/1.1 200 OK
{
"ok":true
}