控制API返回的http status code

来源:8-1 商品管理模块开发概要与接口设计讲解

cantabile_dream

2018-04-17

Geely老师您好,我刚看完前面用户和分类模块的接口设计,我想用Spring AOP的After advice来对所有controller返回的http status code进行一个控制,因为我发现所有的请求,返回的code都是200。比如,如果是resource没有找到,我想返回404。然后您是自己定义的ServerResponse泛类,请问有没有相关的解决方案啊?

下面是我的构思,不知道对不对,主要我不知道在里面怎么操作修改HTTP status code

import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;

@Aspect
public class Advice {

    @Pointcut("execution(* com.mmall.controller.*.*.*(..))")
    public void forControllerPackage(){}

    @AfterReturning(pointcut="forControllerPackage()", returning="response")
    public void afterReturningFromController(JoinPoint theJoinPoint, ServerResponse response) {

    }


}


写回答

2回答

Geely

2018-04-22

二期用拦截器做了类似的东西,就是权限判断,这个在这里用拦截器最佳。

0
2
Geely
回复
cantabile_dream
好滴呢(づ ̄ 3 ̄)づ
2018-04-29
共2条回复

cantabile_dream

提问者

2018-04-17

而且我也不想在每个controller的每个方法里面通过ServerResponse中定义的code加if else 判断,然后再通过HttpServletResponse里面的setStatus方法这样来操作status code。AOP有没有相关有效的解决方案啊?

0
0

从0开始 独立完成企业级Java电商网站服务端开发

前后端分离,数据库接口设计,架构设计,功能开发,上线运维

9489 学习 · 8818 问题

查看课程