展示型外贸网站建设搜索引擎优化结果
目录
一、删除文章分类功能。
(1)接口文档。
1、请求路径、请求参数。
2、请求参数。
3、响应数据。
(2)实现思路与代码书写。
1、controller层。
2、service接口业务层。
3、serviceImpl实现类。
4、mapper层。
5、后端接口测试。(postman)
二、获取文章详细功能。
(1)接口文档。
1、请求方式、请求路径、请求参数。
2、响应数据。
(2)实现思路与代码书写。
1、controller层。
2、service层接口业务层。
3、serviceImpl实现类。
4、mapper层。
5、后端接口测试。(postman)
三、更新文章详细功能。
(1)接口文档。
1、请求路径、请求方式。
2、请求参数。
3、响应数据。
(2)实现思路与代码书写。
1、Article实体类。(分组校验)
2、controller层。
3、service业务接口层。
4、serviceImpl层。
5、mapper层。
6、后端接口测试。(postman工具)
四、删除文章功能。
(1)接口文档。
1、请求方式、请求路径、请求参数。
2、响应数据。
(2)实现思路与代码书写。
1、controller层。
2、service业务接口层。
3、serviceImpl实现类。
4、mapper层。
5、后端接口测试。(postman工具)
一、删除文章分类功能。
(1)接口文档。
1、请求路径、请求参数。
- 请求路径:/category。根据请求方式的不同区分接口的功能。
- 请求方式:DELETE。
2、请求参数。
- 参数格式:queryString格式。(如..?username=zhangsan&password=123)
3、响应数据。
- 响应参数:code(状态码)、message(如操作成功或错误的提示信息)、data(非必须)。
(2)实现思路与代码书写。
1、controller层。
- 方法上面声明注解@DeleteMapping。
- 并在方法参数中声明一个Integer id,用它接收前端传递的"需要删除"的文章分类id。
- 记得在参数前指定非空校验。
/*** 用于根据ID删除文章分类* @param id* @return*/@DeleteMappingpublic Result delete(/*@Validated(Category.Delete.class)*/ @NotNull Integer id){categoryService.delete(id);return Result.success();}
2、service接口业务层。
/*** 用于删除文章分类* @param id*/void delete(Integer id);
3、serviceImpl实现类。
@Overridepublic void delete(Integer id) {//从ThreadLocal里面拿到idMap<String, Object> map = ThreadLocalUtil.get();//得到当前用户登录的idInteger userId = (Integer) map.get("id");//传入用户的idcategoryMapper.delete(userId, id);}
4、mapper层。
/*** 用于删除文章分类* @param userId* @param id*/@Delete("delete from category where id = #{id} and create_user = #{userId}")void delete(Integer userId, Integer id);
5、后端接口测试。(postman)
- 数据库表测试前状态。
- 执行删除文章分类"美食"操作。
- 删除成功!
二、获取文章详细功能。
(1)接口文档。
1、请求方式、请求路径、请求参数。
- 方式:GET请求。
- 路径:/article/detail。
- 请求参数格式:queryString。
- 请求参数:必须传,且是指定该文章的id。
2、响应数据。
- 响应数据:code(必须)、message、data(必须)。
- 响应数据示例。
(2)实现思路与代码书写。
1、controller层。
- 方法名:detail()。
- 方法上:使用注解@GetMapping("/article/detail")。
- 方法参数:使用@NotNull注解。
- 方法内部调用service层方法。
/*** 根据ID获取文章详细信息* @param id* @return*/@GetMapping("/detail")public Result<Article> detail(Integer id){Article article = articleService.findById(id);return Result.success(article);}
2、service层接口业务层。
/*** 根据id查询文章详情* @param id* @return*/Article findById(Integer id);
3、serviceImpl实现类。
@Overridepublic Article findById(Integer id) {//从ThreadLocal里面拿到idMap<String, Object> map = ThreadLocalUtil.get();//得到当前用户登录的idInteger userId = (Integer) map.get("id");//根据当前登录用户的id和文章id查询文章return articleMapper.findById(id, userId);}
4、mapper层。
@Select("select * from article where id = #{id} and create_user = #{userId}") Article findById(Integer id, Integer userId);
5、后端接口测试。(postman)
- 数据库表数据。
- 日期未格式化!
- 注意对象序列化(对象——>JSON格式数据)日期需要变成指定格式!
- Article实体类属性上添加注解。
- 重新启动工程。日期格式化。
三、更新文章详细功能。
(1)接口文档。
1、请求路径、请求方式。
- 请求路径:/article。
- 请求方式:PUT请求。
2、请求参数。
- 参数格式:JOSN格式对象。
- 参数样例。
3、响应数据。
- 响应数据:code(状态码:必须!)
(2)实现思路与代码书写。
1、Article实体类。(分组校验)
- 需要进行分组校验。因为新增文章对于id(不是必须的)。
- 添加分组。
- 指定校验分组。
- 添加对应属性的校验归属。
2、controller层。
- 使用注解@Validated(???)——指定校验分组。
@PutMappingpublic Result update(@RequestBody @Validated(Article.Update.class) Article article){articleService.update(article);return Result.success();}
3、service业务接口层。
/*** 用于更新文章详细* @param article*/void update(Article article);
4、serviceImpl层。
@Overridepublic void update(Article article) {//设置更新时间article.setUpdateTime(LocalDateTime.now());articleMapper.update(article);}
5、mapper层。
@Update("update article set title = #{title},content = #{content}, cover_img = #{coverImg},state = #{state},category_id = #{categoryId}, update_time = #{updateTime} where id = #{id} ") void update(Article article);
6、后端接口测试。(postman工具)
- 数据库当前数据。
- 执行更新操作。
- 更新后数据库数据。
- 新增文章。(没有传id)
- 新增后数据库数据。
- 测试其它数据校验。
四、删除文章功能。
(1)接口文档。
1、请求方式、请求路径、请求参数。
- 请求方式:DELETE请求。
- 请求路径:/article。
- 请求参数:queryString请求参数格式。
- 参数说明:id必须传值。使用注解。
2、响应数据。
(2)实现思路与代码书写。
1、controller层。
/*** 用于根据ID删除文章详细* @param id* @return*/@DeleteMappingpublic Result delete(@NotNull Integer id){articleService.delete(id);return Result.success();}
2、service业务接口层。
/*** 根据id删除文章* @param id*/void delete(Integer id);
3、serviceImpl实现类。
@Overridepublic void delete(Integer id) {//从ThreadLocal里面拿到idMap<String, Object> map = ThreadLocalUtil.get();//得到当前用户登录的idInteger userId = (Integer) map.get("id");//传入用户的idarticleMapper.delete(userId, id);}
4、mapper层。
@Delete("delete from article where id = #{id} and create_user = #{userId}") void delete(Integer userId, Integer id); }
5、后端接口测试。(postman工具)
- 数据库当前数据。
- 测试删除id=6的文章。
- 操作成功后数据。