大型项目之统一返回结果对象

本文介绍了一种统一API返回结果的方法,包括定义返回数据格式、创建统一结果返回类及使用方式。适用于前后端分离项目的统一响应规范。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3cRrJnXS-1607575085304)(F:\谷粒学院教育项目.assets\8 统一结果返回.png)]

一、统一返回数据格式

项目中我们会将响应封装成json返回,一般我们会将所有接口的数据格式统一, 使前端(iOS Android, Web)对数据的操作更一致、轻松。

一般情况下,统一返回数据格式没有固定的格式,只要能描述清楚返回的数据状态以及要返回的具体数据就可以。但是一般会包含状态码、返回消息、数据这几部分内容

例如,我们的系统要求返回的基本数据格式如下

列表
{
  "success": true,
  "code": 20000,
  "message": "成功",
  "data": {
    "items": [
      {
        "id": "1",
        "name": "刘德华",
        "intro": "毕业于师范大学数学系,热爱教育事业,执教数学思维6年有余"
      }
    ]
  }
}
分页
{
  "success": true,
  "code": 20000,
  "message": "成功",
  "data": {
    "total": 17,
    "rows": [
      {
        "id": "1",
        "name": "刘德华",
        "intro": "毕业于师范大学数学系,热爱教育事业,执教数学思维6年有余"
      }
    ]
  }
}
没有返回数据:
{
  "success": true,
  "code": 20000,
  "message": "成功",
  "data": {}
}
失败:
{
  "success": false,
  "code": 20001,
  "message": "失败",
  "data": {}
}

因此,我们定义统一结果

{
  "success": 布尔, //响应是否成功
  "code": 数字, //响应码
  "message": 字符串, //返回消息
  "data": HashMap //返回数据,放在键值对中
}
二、创建统一结果返回类
1、在common模块下创建子模块common-utils

maven

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KYnGCG4M-1607575085308)(F:\谷粒学院教育项目.assets\image-20201206102841586.png)]

2、创建接口定义返回码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ar6O0JRb-1607575085309)(F:\谷粒学院教育项目.assets\image-20201206110146468.png)]

package com.hz52.commonutils;

public interface ResultCode {

    public static Integer SUCCESS = 20000; //成功

    public static Integer ERROR = 20001; //失败
}

package com.hz52.commonutils;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.HashMap;
import java.util.Map;

//统一返回结果的类
@Data
public class R {

    @ApiModelProperty(value = "是否成功")
    private Boolean success;

    @ApiModelProperty(value = "返回码")
    private Integer code;

    @ApiModelProperty(value = "返回消息")
    private String message;

    @ApiModelProperty(value = "返回数据")
    private Map<String, Object> data = new HashMap<String, Object>();

    //把构造方法私有
    private R() {}

    //成功静态方法
    public static R ok() {
        R r = new R();
        r.setSuccess(true);
        r.setCode(ResultCode.SUCCESS);
        r.setMessage("成功");
        return r;
    }

    //失败静态方法
    public static R error() {
        R r = new R();
        r.setSuccess(false);
        r.setCode(ResultCode.ERROR);
        r.setMessage("失败");
        return r;
    }

    public R success(Boolean success){
        this.setSuccess(success);
        return this;
    }

    public R message(String message){
        this.setMessage(message);
        return this;
    }

    public R code(Integer code){
        this.setCode(code);
        return this;
    }

    public R data(String key, Object value){
        this.data.put(key, value);
        return this;
    }

    public R data(Map<String, Object> map){
        this.setData(map);
        return this;
    }
}

三、统一返回结果使用
1、在service模块中添加依赖
<dependency>
    <groupId>com.hz52</groupId>
    <artifactId>common_utils</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>
2、修改Controller中的返回结果

列表

@ApiOperation(value = "所有讲师列表")
@GetMapping
public R list(){
    List<Teacher> list = teacherService.list(null);
    return R.ok().data("items", list);
}

删除

@ApiOperation(value = "根据ID删除讲师")
@DeleteMapping("{id}")
public R removeById(
    @ApiParam(name = "id", value = "讲师ID", required = true)
    @PathVariable String id){
    teacherService.removeById(id);
    return R.ok();
}
无需编程|本地离线|自动生成图表与 Excel 结果这款情感词典分析软件专为中文文本数据设计,适合做问卷、评论、访谈记录、新闻文本等内容的快速情绪倾向分析。用户只需导入 Excel、CSV 或 TXT 文件,软件即可自动识别文本列,调用内置情感词典进行分词统计与情绪分类,并在几秒钟内生成分析表格和可视化图表,适合学术研究、文本挖掘、小红书/微博评论分析以及企业用户反馈分析等场景。软件无需任何 Python 或代码基础,全程图形界面操作,可自行设置输出位置。本地计算、不上传数据,确保隐私安全。⸻功能特色软件内置情感词典算法,通过识别文本中的积极和消极词语,自动生成整体情绪结构报告。完成分析后,系统会自动导出多个 Excel 文件,包括情感得分数据表、区间统计表、极性统计表、正面词汇统计表、负面词汇统计表等,并同步生成折线图、环形图和直方图三类图像文件,方便直接用于论文、报告或可视化展示。同时提供一键式全流程体验:导入数据、识别文本列、执行分析、导出结果,不需要任何编程操作,非常适合需要高效率处理文本的用户。⸻输出内容一览完成分析后,软件会自动生成以下文件(根据你截图对应):PNG 图表 • 情感分析_折线图.png:展示文本情绪随样本变化的整体趋势 • 情感分析_环形图.png:可视化正面、中性、负面情绪比例 • 情感分析_直方图.png:情感得分的分布情况Excel 表格 • 情感分析结果_data.xlsx:每条文本的情感得分与分类 • 情感得分区间统计.xlsx:得分区间(0–1)分布情况 • 情感极性统计.xlsx:正面、中性、负面总体数量 • 正面情感词统计.xl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值