Skip to main content
Glama
01.自定义拦截器.md2.58 kB
--- title: "自定义拦截器" date: "2022-01-30T10:11:39.000Z" permalink: "/pages/senior/interceptor/" --- 编写java代码如下: /** * 拦截请求 */ @Component @Order(1) //拦截器顺序,可选 public class MyInterceptor implements RequestInterceptor { /* * 当返回对象时,直接将此对象返回到页面,返回null时,继续执行后续操作 */ @Override public Object preHandle(ApiInfo info, MagicScriptContext context, MagicHttpServletRequest request, MagicHttpServletResponse response) { System.out.println("请求前:" + info.getPath()); // 需要注意,ApiInfo 是页面上定义的信息,里面的值并不是实际请求的参数!!! // 拦截请求并直接返回结果,不继续后续代码 // 需要注意的是,拦截器返回的结果不会被包裹一层json值,也不会走ResultProvider // return new JsonBean<>(100,"拦截器返回"); // 放开请求,执行后续代码 return null; } /* 此类有多个preHandle重载方法,根据需要自行选择 @Override public Object preHandle(RequestEntity requestEntity) throws Exception { RequestEntity 是本次请求中所有的参数信息封装的对象,可以获取实际请求参数等信息 return null; } */ /** * 执行完毕之后执行 * @param value 即将要返回到页面的值 * @return 返回到页面的对象,当返回null时执行后续拦截器,否则直接返回该值,不执行后续拦截器 */ @Override public Object postHandle(ApiInfo info, MagicScriptContext context, Object value, MagicHttpServletRequest request, MagicHttpServletResponse response) { // 需要注意,ApiInfo 是页面上定义的信息,里面的值并不是实际请求的参数!!! System.out.println("请求后:" + info.getPath()); System.out.println("返回结果:" + value); // 拦截请求并直接返回结果,不继续后续代码 // 需要注意的是,拦截器返回的结果不会被包裹一层json值,也不会走ResultProvider // return new JsonBean<>(100,"拦截器返回"); // 放开请求,执行后续代码 return null; } /* 此类有多个postHandle重载方法,根据需要自行选择 @Override public Object postHandle(RequestEntity requestEntity, Object returnValue) throws Exception { RequestEntity 是本次请求中所有的参数信息封装的对象,可以获取实际请求参数等信息 return null; } */ }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Dwsy/magic-api-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server