# amovie **Repository Path**: sggg/amovie ## Basic Information - **Project Name**: amovie - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-04-14 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于spring boot的电影订票网站 ***项目介绍:*** 该项目是实现网上购票为主的电影网站,主要功能有购买电影票,电影的展示,排行,推荐,评分及评论等。后台包括了电影,资讯,类别,场次等一系列实体的操作,增删改查实现管理。 # 部分功能动图如下 ### 登录 ![image](src/main/resources/static/images/gif/login.gif) ### 订票 ![image](src/main/resources/static/images/gif/booking.gif) ### 排行榜 ![image](src/main/resources/static/images/gif/top.gif) ### 评分 ![image](src/main/resources/static/images/gif/score.gif) ### 添加到播放列表 ![image](src/main/resources/static/images/gif/addToWatchList.gif) # Moive后台接口文档 合理使用以下类: - 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](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS),使用Postman不会遇见此类问题,但需引起重视。 Postman的Header请设置成Content-Type: application/json,但凡请求数据为以下格式的,都需在Postman的Body下的raw下发送: ```json { "name": "" } ``` ## 类别 ### 获取类别列表(分页) 请求方式:GET
请求地址:/categories
请求参数: | 参数值 | 参数类型 | 是否必须 | 说明 | | --- | --- | --- | --- | | page | int | 否,默认1 | 页码 | | size | int | 否,默认20 | 每页大小 | -----返回结构
HTTP状态码:200 -- 数据 ### 获取所有类别列表(不分页) 请求方式:GET
请求地址:/categories/all
请求参数:无
返回数据格式: ```json [ { "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
请求数据: ```json { "name": "value" } ``` | 参数值 | 参数类型 | 是否必须 | 说明 | | --- | --- | --- | --- | | name | String | 是 | 类别名称 | -----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 创建失败 ### 修改类别 请求方式:PUT
请求头:Content-Type: application/json;charset=utf-8
请求地址:/categories/{id}
路径参数: | 参数值 | 参数类型 | 是否必须 | 说明 | | --- | --- | --- | --- | | id | int | 是 | 类别id | 请求数据: ```json { "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
请求数据: ```json { "content": "value" } ``` | 参数值 | 参数类型 | 是否必须 | 说明 | | --- | --- | --- | --- | | content | String | 是 | 资讯 | -----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 创建失败 ### 修改资讯 请求方式:PUT
请求头:Content-Type: application/json;charset=utf-8
请求地址:/news/{id}
请求数据: ```json { "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
请求数据: ```json { "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}
请求数据: ```json { "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** ```json { "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
请求数据: ```json { "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 | 请求数据: ```json { "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
请求数据: ```json { "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}
请求数据: ```json { "userId": 7, "movieId": 2, "score": 1 } ``` | 参数值 | 参数类型 | 是否必须 | 说明 | | --- | --- | --- | --- | | movieId | int | 是 | 电影id | | userId | int | 是 | 用户id | | score | int | 是 | 评分 | -----返回结构
HTTP状态码:200 -- 成功
HTTP状态码:400 -- 更新失败
HTTP状态码:404 -- 资源未找到