项目介绍: 该项目是实现网上购票为主的电影网站,主要功能有购买电影票,电影的展示,排行,推荐,评分及评论等。后台包括了电影,资讯,类别,场次等一系列实体的操作,增删改查实现管理。
合理使用以下类:
- org.springframework.http.ResponseEntity
- org.springframework.http.HttpStatus
使用POST/PUT发送JSON数据时,反序列化成对象需要在参数上加@RequestBody注解。
在浏览器上使用PUT/DELETE时会遇见跨域问题,原因在于浏览器遵循同源策略,具体信息见链接https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS,使用Postman不会遇见此类问题,但需引起重视。
Postman的Header请设置成Content-Type: application/json,但凡请求数据为以下格式的,都需在Postman的Body下的raw下发送:
{
"name": ""
}
请求方式:GET
请求地址:/categories
请求参数:
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
page | int | 否,默认1 | 页码 |
size | int | 否,默认20 | 每页大小 |
-----返回结构
HTTP状态码:200 -- 数据
请求方式:GET
请求地址:/categories/all
请求参数:无
返回数据格式:
[
{
"id": 1,
"name": "动作"
},
{
"id": 2,
"name": "爱情"
}
]
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
id | int | 是 | 类别id |
name | String | 是 | 类别名称 |
请求方式:GET
请求地址:/categories/{id}
路径参数:
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
id | int | 是 | id |
-----返回结构
HTTP状态码:200 -- 数据
HTTP状态码:404 -- 资源未找到
请求方式:POST
请求头:Content-Type: application/json;charset=utf-8
请求地址:/categories
请求数据:
{
"name": "value"
}
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
name | String | 是 | 类别名称 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 创建失败
请求方式:PUT
请求头:Content-Type: application/json;charset=utf-8
请求地址:/categories/{id}
路径参数:
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
id | int | 是 | 类别id |
请求数据:
{
"name": "value"
}
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
name | String | 是 | 类别名称 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 修改失败
HTTP状态码:404 -- 资源未找到
请求方式:DELETE
请求头:Content-Type: application/json;charset=utf-8
请求地址:/categories/{id}
路径参数:
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
id | int | 是 | 类别id |
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 删除失败
HTTP状态码:404 -- 资源未找到
请求方式:GET
请求地址:/news
请求参数:
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
page | int | 否,默认1 | 页码 |
size | int | 否,默认20 | 每页大小 |
HTTP状态码:200 -- 数据
请求方式:GET
请求地址:/news/{id}
路径参数:
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
id | int | 是 | id |
-----返回结构
HTTP状态码:200 -- 数据
HTTP状态码:404 -- 资源未找到
请求方式:POST
请求头:Content-Type: application/json;charset=utf-8
请求地址:/news
请求数据:
{
"content": "value"
}
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
content | String | 是 | 资讯 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 创建失败
请求方式:PUT
请求头:Content-Type: application/json;charset=utf-8
请求地址:/news/{id}
请求数据:
{
"content": "value"
}
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
content | String | 是 | 资讯 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 修改失败
HTTP状态码:404 -- 资源未找到
请求方式:DELETE
请求头:Content-Type: application/json;charset=utf-8
请求地址:/news/{id}
路径参数:
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
id | String | 是 | id |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 删除失败
HTTP状态码:404 -- 资源未找到
请求方式:GET
请求地址:/movies
请求参数:
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
page | int | 否,默认1 | 页码 |
size | int | 否,默认20 | 每页大小 |
HTTP状态码:200 -- 数据
请求方式:GET
请求地址:/movies/{id}
路径参数:
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
id | int | 是 | id |
-----返回结构
HTTP状态码:200 -- 数据
HTTP状态码:404 -- 资源未找到
请求方式:GET
请求地址:/movies
请求参数:
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
categoryIds | int[] | 是 | 类型id |
page | int | 否 | 页数 |
size | int | 否 | 每页大小 |
-----返回结构
HTTP状态码:200 -- 数据
请求方式:POST
请求头:Content-Type: application/json;charset=utf-8
请求地址:/movies
请求数据:
{
"name": "name",
"duration": 123,
"directors": "",
"actors": "",
"releaseDate": "",
"categoryIds": [1,2],
"status": "",
"plot": "",
"poster": "",
"country": ""
}
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
name | String | 是 | 电影名称 |
duration | int | 是 | 时长 |
directors | String | 是 | 导演 |
actors | String | 是 | 演员 |
releaseDate | Date/String | 是 | 上映日期 |
categoryIds | int[] | 是 | 类别id,多个类别 |
status | int/String | 否 | 上映状态,默认未上映 |
plot | String | 是 | 剧情 |
poster | String | 是 | 电影海报链接 |
country | String | 是 | 国家 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 创建失败
请求方式:PUT
请求头:Content-Type: application/json;charset=utf-8
请求地址:/movies/{id}
请求数据:
{
"name": "name",
"duration": 120,
"directors": "",
"actors": "",
"releaseDate": "",
"categoryIds": [1],
"status": "",
"plot": "",
"poster": "",
"country": ""
}
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
id | int | 是 | id |
name | String | 否 | 电影名称 |
duration | int | 否 | 时长 |
directors | String | 否 | 导演 |
actors | String | 否 | 演员 |
releaseDate | Date/String | 否 | 上映日期 |
categoryIds | int[] | 否 | 类别id |
status | int/String | 否 | 上映状态,默认未上映 |
plot | String | 否 | 剧情 |
poster | String | 否 | 电影海报链接 |
country | String | 否 | 国家 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 更新失败
HTTP状态码:404 -- 资源未找到
备注:该对象更新时并非全部字段更新,仅向后端传输需要更新的字段。例如:
PUT /movies/1
{
"name": "乘风破浪",
"directors": "韩寒",
"actors": "邓超,彭于晏,赵丽颖,董子健,高华阳,张本煜,李荣浩"
}
请求方式:DELETE
请求头:Content-Type: application/json;charset=utf-8
请求地址:/movies/{id}
路径参数:
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
id | String | 是 | id |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 删除失败
HTTP状态码:404 -- 资源未找到
请求方式:GET
请求地址:/scenes
请求参数:
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
page | int | 否,默认1 | 页码 |
size | int | 否,默认20 | 每页大小 |
HTTP状态码:200 -- 数据
请求方式:GET
请求地址:/scenes/{id}
路径参数:
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
id | int | 是 | id |
-----返回结构
HTTP状态码:200 -- 数据
HTTP状态码:404 -- 资源未找到
请求方式:GET
请求地址:/movies/{id}/scenes
路径参数:
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
id | int | 是 | 电影id |
-----返回结构
HTTP状态码:200 -- 数据
备注:某个电影下没有场次或者有多个场次,没有场次也应该返回HTTP状态码200。
**
请求方式:POST
请求头:Content-Type: application/json;charset=utf-8
请求地址:/scenes
请求数据:
{
"movieId": "",
"movieName": "",
"price": 20,
"seatNum": 166,
"showtime": "12:10",
"bookedSeat": ["A2", "B3"]
}
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
movieId | int | 是 | 电影id |
movieName | String | 是 | 电影名称 |
price | int | 是 | 该场次的价格 |
seatNum | int | 否 | 座位数,默认数 |
showtime | String/Date | 是 | 播放时间 |
bookedSeat | String[] | 否 | 已预定的座位 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 创建失败
请求方式:PUT
请求头:Content-Type: application/json;charset=utf-8
请求地址:/scenes/{id}
路径参数:
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
id | int | 是 | id |
请求数据:
{
"movieId": "",
"movieName": "",
"price": 20,
"seatNum": 166,
"showtime": "12:10",
"bookedSeat": ["A2", "B3"]
}
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
movieId | int | 否 | 电影id |
movieName | String | 否 | 电影名称 |
price | int | 否 | 该场次的价格 |
seatNum | int | 否 | 座位数,默认数 |
showtime | String/Date | 否 | 播放时间 |
bookedSeat | String[] | 否 | 已预定的座位 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 修改失败
HTTP状态码:404 -- 资源未找到
请求方式:DELETE
请求头:Content-Type: application/json;charset=utf-8
请求地址:/scenes/{id}
路径参数:
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
id | String | 是 | id |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 删除失败
HTTP状态码:404 -- 资源未找到
请求方式:GET
请求地址:/movies/{id}/ranks
路径参数:
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
id | int | 是 | 电影id |
HTTP状态码:200 -- 数据
HTTP状态码:404 -- 资源未找到
请求方式:POST
请求头:Content-Type: application/json;charset=utf-8
请求地址:/ranks
请求数据:
{
"userId": 7,
"movieId": 2,
"score": 1
}
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
movieId | int | 是 | 电影id |
userId | int | 是 | 用户id |
score | int | 是 | 评分 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 创建失败
备注:评分的范围在1-5之间,整数。
请求方式:PUT
请求头:Content-Type: application/json;charset=utf-8
请求地址:/movies/{id}
请求数据:
{
"userId": 7,
"movieId": 2,
"score": 1
}
参数值 | 参数类型 | 是否必须 | 说明 |
---|---|---|---|
movieId | int | 是 | 电影id |
userId | int | 是 | 用户id |
score | int | 是 | 评分 |
-----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 更新失败
HTTP状态码:404 -- 资源未找到