前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >T系列项目讲解笔记3:后端API接口返回包装类

T系列项目讲解笔记3:后端API接口返回包装类

作者头像
Designer 小郑
发布2024-07-08 10:34:15
780
发布2024-07-08 10:34:15
举报
文章被收录于专栏:跟着小郑学JAVA

博主介绍:全网粉丝10W+,CSDN博客专家、全栈领域优质创作者,3年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型。 研究方向:SpringBoot、Vue.JS、MyBatisPlus、Redis、SpringSecurity、MySQL、小程序、Android、Uniapp等。

一、前后端数据交互机制

Vue.js和Spring Boot作为现代Web开发中流行的前后端技术,它们之间的数据交互机制主要基于RESTful API。Vue.js作为前端框架,通过AJAX请求与后端Spring Boot进行数据交互。以下是一段描述它们数据交互机制的连贯文本:

Vue.js通过使用axios或fetch等HTTP客户端库,向Spring Boot后端发送HTTP请求,如GET、POST、PUT、DELETE等。Spring Boot后端使用Spring MVC框架处理这些请求,并将数据以JSON或XML格式返回给前端。Vue.js接收到响应后,使用响应数据更新其组件状态,从而实现数据的双向绑定和动态更新。这种机制使得前后端分离,提高了开发效率和可维护性,同时也支持了前后端的独立部署和扩展。

在Vue.js中,可以使用Vuex进行状态管理,以更好地组织和维护组件状态。而在Spring Boot后端,可以使用Spring Data JPA或MyBatis等ORM框架进行数据库操作,以实现数据的增删改查。此外,Spring Boot还提供了自动配置、依赖注入等特性,简化了后端开发过程。

总之,Vue.js和Spring Boot的前后端数据交互机制基于RESTful API,通过HTTP请求和响应实现数据的传递和更新。这种机制使得前后端分离,提高了开发效率和可维护性,同时也支持了前后端的独立部署和扩展。


二、状态码

在Java后端开发中,HTTP状态码(HTTP Status Codes)用于表示服务器对客户端请求的响应。以下是一些常见的HTTP状态码及其含义:

2.1:1xx - 信息性状态码

  • 100 Continue:继续发送请求的剩余部分。
  • 101 Switching Protocols:服务器已同意客户端的协议切换请求。

2.2:2xx - 成功状态码

  • 200 OK:请求成功,服务器返回了请求的资源。
  • 201 Created:请求成功,并且服务器创建了新的资源。
  • 202 Accepted:服务器已接受请求,但尚未处理完成。
  • 204 No Content:服务器成功处理了请求,但没有返回任何内容。

2.3:3xx - 重定向状态码

  • 300 Multiple Choices:请求有多个可能的响应。
  • 301 Moved Permanently:请求的资源已被永久移动到新位置。
  • 302 Found:请求的资源临时移动到另一个URI。
  • 304 Not Modified:如果客户端发送了一个带有条件请求的GET请求,并且资源未被修改,则返回此状态码。

2.4:4xx - 客户端错误状态码

  • 400 Bad Request:服务器无法理解请求的格式。
  • 401 Unauthorized:请求需要用户身份验证。
  • 403 Forbidden:服务器理解请求,但拒绝执行。
  • 404 Not Found:服务器找不到请求的资源。
  • 405 Method Not Allowed:请求方法不被允许。
  • 408 Request Timeout:服务器在等待请求时超时。
  • 409 Conflict:请求与服务器上的资源冲突。
  • 413 Payload Too Large:请求实体过大,服务器无法处理。
  • 415 Unsupported Media Type:请求的媒体类型不被服务器支持。

2.5:5xx - 服务器错误状态码

  • 500 Internal Server Error:服务器遇到错误,无法完成请求。
  • 501 Not Implemented:服务器不支持请求的功能。
  • 502 Bad Gateway:服务器作为网关或代理,从上游服务器收到无效响应。
  • 503 Service Unavailable:服务器目前无法使用(由于超载或维护)。
  • 504 Gateway Timeout:服务器作为网关或代理,但未及时从上游服务器接收请求。

在Java后端开发中,可以使用Spring框架的RestTemplate或WebClient等工具来发送HTTP请求,并处理这些状态码。同时,可以使用Spring MVC的@Controller和@RestController注解来处理HTTP请求,并返回相应的状态码。


三、接口备注

msg 这个字段相对理解比较简单,就是发生错误时,如何友好的进行提示。

3.1 定义

代码语言:javascript
复制
public R() {
	put("code", 0);
}

public static R error() {
	return error(500, "未知异常,请联系管理员");
}

3.2 使用

代码语言:javascript
复制
@RequestMapping("/query")
public R query(JingsaixinxiEntity jingsaixinxi){
    // ......
    return R.ok("查询竞赛信息成功").put("data", jingsaixinxiView);
}

四、返回数据体

data 是返回的数据体,JSON格式,根据不同的业务有不同的JSON体。

4.1 定义

代码语言:javascript
复制
public static R ok(Map<String, Object> map) {
	R r = new R();
	r.putAll(map);
	return r;
}

4.2 使用

代码语言:javascript
复制
@RequestMapping("/lists")
public R list( JingsaixinxiEntity jingsaixinxi){
    // ......
    return R.ok().put("data", jingsaixinxiService.selectListView(ew));
}

五、完整代码

5.1 定义

代码语言:javascript
复制
import java.util.HashMap;
import java.util.Map;

/**
 * 返回数据
 */
public class R extends HashMap<String, Object> {
	private static final long serialVersionUID = 1L;
	
	public R() {
		put("code", 0);
	}
	
	public static R error() {
		return error(500, "未知异常,请联系管理员");
	}
	
	public static R error(String msg) {
		return error(500, msg);
	}
	
	public static R error(int code, String msg) {
		R r = new R();
		r.put("code", code);
		r.put("msg", msg);
		return r;
	}

	public static R ok(String msg) {
		R r = new R();
		r.put("msg", msg);
		return r;
	}
	
	public static R ok(Map<String, Object> map) {
		R r = new R();
		r.putAll(map);
		return r;
	}
	
	public static R ok() {
		return new R();
	}

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

5.2 使用

代码语言:javascript
复制
/**
 * 列表
 */
@RequestMapping("/lists")
public R list( JingsaixinxiEntity jingsaixinxi){
    EntityWrapper<JingsaixinxiEntity> ew = new EntityWrapper<JingsaixinxiEntity>();
    ew.allEq(MPUtil.allEQMapPre( jingsaixinxi, "jingsaixinxi")); 
    return R.ok().put("data", jingsaixinxiService.selectListView(ew));
}

 /**
 * 查询
 */
@RequestMapping("/query")
public R query(JingsaixinxiEntity jingsaixinxi){
    EntityWrapper< JingsaixinxiEntity> ew = new EntityWrapper< JingsaixinxiEntity>();
    ew.allEq(MPUtil.allEQMapPre( jingsaixinxi, "jingsaixinxi")); 
    JingsaixinxiView jingsaixinxiView =  jingsaixinxiService.selectView(ew);
    return R.ok("查询竞赛信息成功").put("data", jingsaixinxiView);
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前后端数据交互机制
  • 二、状态码
    • 2.1:1xx - 信息性状态码
      • 2.2:2xx - 成功状态码
        • 2.3:3xx - 重定向状态码
          • 2.4:4xx - 客户端错误状态码
            • 2.5:5xx - 服务器错误状态码
            • 三、接口备注
              • 3.1 定义
                • 3.2 使用
                • 四、返回数据体
                  • 4.1 定义
                    • 4.2 使用
                    • 五、完整代码
                      • 5.1 定义
                        • 5.2 使用
                        相关产品与服务
                        Serverless HTTP 服务
                        Serverless HTTP 服务基于腾讯云 API 网关 和 Web Cloud Function(以下简称“Web Function”)建站云函数(云函数的一种类型)的产品能力,可以支持各种类型的 HTTP 服务开发,实现了 Serverless 与 Web 服务最优雅的结合。用户可以快速构建 Web 原生框架,把本地的 Express、Koa、Nextjs、Nuxtjs 等框架项目快速迁移到云端,同时也支持 Wordpress、Discuz Q 等现有应用模版一键快速创建。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档