magic-api magic-api
首页
  • 快速入门
  • 基础教程
  • 权限配置
  • 高级应用
  • 开发插件
  • 模块
  • 函数
  • 扩展
  • Gitee (opens new window)
  • Github (opens new window)
  • 演示 (opens new window)
  • SpringBoot配置
  • 编辑器配置
  • 2.x更新日志
  • 1.x更新日志
  • 0.x更新日志
常见问题
💖支持
交流群
首页
  • 快速入门
  • 基础教程
  • 权限配置
  • 高级应用
  • 开发插件
  • 模块
  • 函数
  • 扩展
  • Gitee (opens new window)
  • Github (opens new window)
  • 演示 (opens new window)
  • SpringBoot配置
  • 编辑器配置
  • 2.x更新日志
  • 1.x更新日志
  • 0.x更新日志
常见问题
💖支持
交流群
  • 快速入门

    • 简介
    • 快速开始
    • 请求参数获取
    • 增删改查
    • 单表crud接口
    • 分页
  • 基础教程

    • 界面简介
    • 脚本语法
    • 配置多数据源
    • 统一请求响应
      • 统一异常处理
      • 参数校验
      • 脚本调用Java
      • Java调用接口
      • 异步调用
      • 接口发布
      • Lambda
      • Linq
      • 从1.x迁移
    • 权限配置

      • UI鉴权登录
      • UI操作鉴权
      • 接口鉴权
    • 高级应用

      • 自定义拦截器
      • 自定义SQL拦截器
      • 自定义单表API拦截器
      • 自定义SQL缓存
      • 自定义模块
      • 自定义函数
      • 自定义类型扩展
      • 自定义接口存储
      • 自定义数据库方言
      • 自定义列名转换
      • 自定义脚本语言
    • 插件

      • 插件开发
      • 集群插件
      • 定时任务插件
      • Redis插件
      • Mongo插件
      • ElasticSearch插件
      • Swagger插件
      • Git插件
      • SpringDoc插件
      • nebula插件
    • 指南
    • 基础教程
    mxd
    2022-01-29
    目录

    统一请求响应

    # 自定义状态码

    目前内置了三种状态码,分别为 执行成功(1),参数验证失败(0),以及系统异常(-1)

    个别情况可能需要针对三种状态码进行修改,可使用以下配置

    magic-api:
      response-code:
        success: 200 #执行成功的code值
        invalid: 400 #参数验证未通过的code值
        exception: 500 #执行出现异常的code值
    

    # 自定义响应Json结构

    默认情况下,返回结果如下:

    {
      "code": 1,  // 状态码
      "message": "success", // 状态说明
      "data": ...,  // 返回的数据内容
      "timestamp": 1629610503506, // 服务器时间
      "executeTime": 1  // 执行时间
    }
    

    可以通过配置文件来修改此格式

    magic-api:
      response: |- #配置JSON格式,格式为magic-script中的表达式
        {
          code: code,
          message: message,
          data,
          timestamp,
          requestTime,
          executeTime,
        }
    

    # 更加灵活的自定义结构配置

    编写Java代码如下,在使用此配置之后,配置文件中的magic-api.response将失效

    @Component
    public class CustomJsonValueProvider implements ResultProvider {
        /**
        *   定义返回结果,默认返回JsonBean
        */
    	@Override
    	public Object buildResult(RequestEntity requestEntity, int code, String message, Object data) {
            // 如果对分页格式有要求的话,可以对data的类型进行判断,进而返回不同的格式
    		return new HashMap<String,Object>(){
    			{
    				put("status", code);
    				put("msg", message);
    				put("body", data);
    			}
    		};
    	}
    
    	/**
    	 *   定义分页返回结果,该项会被封装在Json结果内,
    	 *   此方法可以不覆盖,默认返回PageResult
    	 */
    	@Override
    	public Object buildPageResult(RequestEntity requestEntity, Page page, long total, List<Map<String, Object>> data) {
    		return new HashMap<String,Object>(){
    			{
    				put("total", total);
    				put("list", data);
    			}
    		};
    	}
    }
    
    上次更新: 2025-05-03 23:57:14
    配置多数据源
    统一异常处理

    ← 配置多数据源 统一异常处理→

    Theme by Vdoing | Copyright © 2020-2025 ssssssss.org | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×