您的位置:首页 > Web前端 > JavaScript

RestFul API开发,前后端分离模式,ajax调用,JSON传递

2020-01-14 14:46 483 查看

1、前端部分,调用后台数据

function saveHtml() {
// console.log($("#textContent").text());
// console.log($("#content").text());
$.ajax({
url: "/article/add",
type: "post",
async: true,
data: {
"content": $("#text").text(),
"textContent": $("#textContent").text()
},
dataType: "json",
success: function (data) {
alert(data.msg);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus); // paser error;
}
});
}

2、后台部分,以JSON格式返回数据

/**
* 保存文章
*/
@ResponseBody
@PostMapping("/add")
public ReturnT add(TbArticle article) {
return articleService.insert(article);
}

3、service

/**
* 新增
*/
ReturnT insert(TbArticle tbArticle);

4、impl

@Override
@Transactional(rollbackFor = Exception.class)
public ReturnT insert(TbArticle article) {
// valid
if (article == null) {
return ReturnT.SUCCESS(HttpStatus.HTTP_BAD_REQUEST, "必要参数缺失");
}
article.setTitle("hhhh");
article.setCreateTime(new Date());
article.setCommentable("是");
article.setCommentCount(0);
article.setPermalink(DateUtil.format(new Date(), "yyyy/MM/dd"));
article.setPutTop("否");
article.setViewCount(0);
luteArticleMapper.insert(article);
return ReturnT.SUCCESS(article, "文章发布成功!");
}

5、ReturnT是封装的

package com.nathan.lute.module;

import lombok.Data;

import java.io.Serializable;

/**
* 〈一句话功能简述〉<br>
* 〈〉
*
* @author Na7han 2019-11-26
*/
@Data
public class ReturnT implements Serializable {
private static final long serialVersionUID = 1L;

/*成功标示*/
private boolean success;
/*返回状态码*/
private int code;
/*返回对象*/
private Object data;
/* 返回错误信息*/
private String msg;

/*-----------------------------------------构造器开始----------------------------------------*/

/**
* 返回成功的实体
*
* @param msg 消息
* @param obj 数据
*/
public ReturnT(Object obj, String msg) {
this.code = 200;
this.success = true;
this.msg = msg;
this.data = obj;
}

/**
* 成功
*
* @param msg 消息
*/
public ReturnT(String msg) {
this.code = 200;
this.success = true;
this.msg = msg;
this.data = (Object) "";
}

/**
* 成功
*
* @param data 数据
*/
public ReturnT(Object data) {
this.code = 200;
this.success = false;
this.msg = "请求成功!";
this.data = data;
}

/**
* 返回错误信息
*
* @param code 错误码
* @param msg  消息
*/
public ReturnT(int code, String msg) {
this.code = code;
this.success = false;
this.msg = msg;
this.data = (Object) "";
}

/**
* 成功直接返回数据和状态
*
* @param data 数据
* @param msg  消息
*/
public static ReturnT SUCCESS(Object data, String msg) {
return new ReturnT(data, msg);
}

/**
* 成功直接返回数据和状态
*
* @param msg 消息
*/
public static ReturnT SUCCESS(String msg) {
return new ReturnT(msg);
}

/**
* 成功直接返回数据和状态
*
* @param data 数据
*/
public static ReturnT SUCCESS(Object data) {
return new ReturnT(data);
}

/**
* 失败
*
* @param code 失败状态码
* @param msg  失败说明
* @return
*/
public static ReturnT FAIL(int code, String msg) {
return new ReturnT(code, msg);
}

/*-----------------------------------------构造器开始/End----------------------------------------*/

/* ---------------------------------------Http状态码----------------------------------------*/
/**
* 服务器错误
*/
public static final int FAIL_CODE = 500;

/* ---------------------------------------Http状态码/End----------------------------------------*/
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
Lose丶Recall 发布了61 篇原创文章 · 获赞 3 · 访问量 1906 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: