7. 表现层数据封装

news2024/12/24 10:21:01

表现层数据封装

    • @[TOC](表现层数据封装)
      • 1. 表现层响应数据的问题
      • 2. 定义ResponseResults类封装响应结果
      • 3. 定义Code类封装响应码
      • 4. 表现层数据封装返回Result对象
      • 5.postman发送请求结果

1. 表现层响应数据的问题

目前表现层增删改方法返回true或者false表示是否成功,getById()方法返回一个json对象,getAll()方法返回一个json对象数组,这里就出现了三种格式的响应结果,极其不利于前端解析。

image-20221224222553019

需要统一响应结果的格式

2. 定义ResponseResults类封装响应结果

package com.zhang.controller;

import lombok.*;

@Data//这个注解的作用是生成类的setget方法以及toString方法
@AllArgsConstructor//生成这个类的全参构造器
@RequiredArgsConstructor//生成这个类的指定参数的构造器,与@NonNull搭配使用
@NoArgsConstructor//生成这个类的无参构造器

public class ResponseResults {


    @NonNull//作用在属性上,指定该属性为构造器的一个参数
    private Integer code;//描述统一格式中的数据
    @NonNull
    private Object data; //描述统一格式中的编码,用于区分操作

    private String message;//描述统一格式中的消息,可选属性

}

3. 定义Code类封装响应码

package com.zhang.controller;

public class Code {

    public static final Integer ADD_OK = 20021;//增加成功
    public static final Integer DEL_OK = 20031;//删除成功
    public static final Integer UPT_OK=20041;//修改成功
    public static final Integer SEL_OK = 20011;//查询成功


    public static final Integer ADD_FAIL = 20000;//增加失败
    public static final Integer DEL_FAIL = 20010;//删除失败
    public static final Integer UPT_FAIL = 20020;//修改失败
    public static final Integer SEL_FAIL = 20030;//查询失败

}

4. 表现层数据封装返回Result对象

@RestController
@RequestMapping("/books")
public class BookController {

    @Autowired
    private BookService bookService;

   
    /**
     * 查一个
     */

    @GetMapping("getAll/{id}")
    public ResponseResults queryById(@PathVariable("id") Integer id){

        Book book = bookService.queryById(id);
        Integer code = book != null ? Code.SEL_OK : Code.SEL_FAIL;
        String msg = book != null ? "" : "数据查询失败,请重试!";

        return new ResponseResults(code,book,msg);
    }

    ......
}    

5.postman发送请求结果

image-20221224223247724

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/113709.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kubernetes网络自学系列 | 网络虚拟化基石:network namespace

素材来源:《Kubernetes网络权威指南》 一边学习一边整理内容,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:Kubernetes网络自学系列 | 汇总_COCOgsta的博客-CSDN博客 1.1 网络虚拟化基石:netw…

【Pandas入门教程】如何计算汇总统计数据

如何计算汇总统计数据 来源:Pandas官网:https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html 笔记托管:https://gitee.com/DingJiaxiong/machine-learning-study 文章目录如何计算汇总统计数据导包数据准备【1】如何…

【学习Seata1.6源码#03】TC 集群具有高可用架构的秘密

一、背景 TC 集群具有高可用架构,应用到集群是这样一个间接的关系:应用 -》事务分组 -》TC 集群,应用启动后所指定的事务分组不能变,可通过配置中心变更事务分组所属的 TC 集群,Seata 客户端监听到这个变更后&#xf…

TIA博途中进行积分运算的具体方法

TIA博途中进行积分运算的具体方法 如下图所示,积分是对给定函数曲线的面积进行数学计算。但是实际曲线往往没有明确的数学关系,而是随时间变化的模拟量。积分计算就是把所有由两个过程值与时间所围成的梯形区域面积相加,梯形面积等于两个过程值的平均值乘以时间间隔。 如下…

MAC 下编译调试 MySQL8.0 源码

MAC 下编译调试 MySQL8.0 源码 最近遇到几个关于 MySQL 死锁的问题,但是查看网上的资料发现并不能解决我遇到的问题,于是决定从源码寻找答案,所以在这里记录一下自己编译 MySQL 源码的过程。 环境配置如下: macOS Ventura 版本 1…

达势股份IPO前紧急叫停:年内已有多家公司急刹车,王怡为董事长

又一家准上市公司在IPO前紧急叫停。 近日,达美乐比萨(Domino’s Pizza,NYSE:DPZ)在中国的运营商——达势股份(DPC Dash Ltd,HK:01405)发布《延迟全球发售及退回香港公开发售的申请股款》&#…

箭头函数的使用

一、什么是箭头函数 从 ES6 开始支持箭头函数,它是一种新的函数表达方式,可以在某些情况下使函数的使用更加的简洁。 二、箭头函数的使用 1、单个参数的使用 例: var f v > v;// 等同于var f function (v) {return v;};2、如果箭头函…

upload-labs(writeup)

pass1 前端验证,使用bp抓包改后缀 pass2 验证MIME类型,使用bp抓包,更改Content-Type 即可 pass3 黑名单限制,可以上传 .php3 .php5 .pthml 等等后缀, 但是要在phpstydy配置文件中更改,(我使…

网络编程 基于tcp/ip协议的C/S模型

1.socket编程的一些概念 socket作用:运行在计算机中的两个程序通过socket建立起一个通道,数据在通道中传输。socket提供了流(stream),是基于TCP协议,是一个有序、可靠、双向字节流的通道,传输数据不会丢失、不会重复、…

C#中的String和StringBuilder

一:前言 String和StringBuilder都是引用类型 StringBuilder是可变的字符串,它不会创建当前字符串的新修改实例而是在现有字符串对象中进行修改 String是不可变字符串,一旦被初始化后就不能改变其内容,String值改变的过程其实是创…

如何自定义注解

在 Spring Boot 应用中&#xff0c;使用自定义注解时需要用到 AOP&#xff0c;因此引入 AOP 相关依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependenc…

Python办公自动化|批量生成请假条

大家好&#xff0c;我是毕加锁 本文就将基于一个真实的办公案例进行讲解如何提取Excel内容并创建Word&#xff0c;主要将涉及以下三个知识点 “ openpyxl 读取 Excel 文件 python-docx 写入 Word 文件 python-docx 各类样式的设计和调整 ”需求描述 你是公司的底层小虾米&…

2022年AIGC简单展望

2022 对于社会是不平凡的一年&#xff0c;而对于科技也同样是不平凡的一年。人们在社会中遭受着失意&#xff0c;却在科技中寻找希冀。对于一个命运共同体&#xff0c;它想着如何破除衰退&#xff0c;而同样对于一个活生生的个体或者家庭&#xff0c;他们也在摸索改变命运的机遇…

SpringBoot拦截器HandlerInterceptor

一、HandlerInterceptor是什么&#xff1f; Spring Boot 拦截器主要应用于登陆校验、权限验证、乱码解决&#xff0c;同样提供了拦截器功能。 二、使用方式 在项目中实现HandlerInterceptor接口开箱即用 三、HandlerInterceptor 中实现的方法 方法介绍preHandle(HttpServletRe…

Linux操作系统之进程间的通讯—管道

文章目录进程间通讯&#xff08;IPC机制&#xff09;有哪几种方式&#xff1f;1、管道有名管道无名管道2、信号量进程间通讯&#xff08;IPC机制&#xff09;有哪几种方式&#xff1f; 管道、信号量、共享内存、消息队列、套接字 1、管道 什么是管道&#xff1f; 有名管道…

JavaScript 入门基础 - 变量 / 数据类型(二)

JavaScript 入门基础 - 变量 / 数据类型&#xff08;二&#xff09; 文章目录JavaScript 入门基础 - 变量 / 数据类型&#xff08;二&#xff09;1.变量1.1 什么是变量1.2 变量在内存中的存储1.3 变量的使用1.4 变量语法扩展1.4.1 更新变量1.4.2 声明多个变量1.4.3 声明变量的特…

node.js+uni计算机毕设项目个性化服务系统小程序(程序+小程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等…

一文稿定 Appium 环境配置

Appium 是一个开源的、跨平台的测试框架&#xff0c;可以用来测试 Native App、混合应用、移动 Web 应用&#xff08;H5 应用&#xff09;等&#xff0c;也是当下互联网企业实现移动自动化测试的重要工具。Appium 坚持的测试理念&#xff1a; •无需用户对 App 进行任何修改或…

vue后台管理系统项目-vue-quill-editor实现富文本编辑器功能

富文本编辑器功能实现详细过程 目录 富文本编辑器功能实现详细过程 1.安装富文本插件 2.实现效果 3.实现详细过程 可直接使用 全局引入 局部引入 配置option 扩展需求 自定义配置文字大小 1.安装富文本插件 npm install vue-quill-editor --save //或者 yarn add vu…

AI城管自动识别摊贩占道经营出店经营行为

AI城管自动识别摊贩占道经营出店经营行为通过pythonyolov7对现场画面自动AI实时监测&#xff0c;当监测到流动商贩占道经营违规摆摊出店经营时时&#xff0c;立即告警。Python是一种由Guido van Rossum开发的通用编程语言&#xff0c;它很快就变得非常流行&#xff0c;主要是因…