1. 程式人生 > >返回資料標準(後端反饋資料標準化)

返回資料標準(後端反饋資料標準化)

返回資料標準

        我們做了一個後臺管理專案(lotteryCMS),為了解析時好解析,我們會對從db中拿到的資料進行封裝,當前端接受到資料的時候根據反饋的code就可以決定自己是否要解析這次查詢的資料了。

        我們定義一個基本的返回物件Response,我們的操作無非是兩種情況,成功或者失敗:

import java.io.Serializable;

public class Response implements Serializable {

	private static final long serialVersionUID = -1412088307616236078L;

	private String code = CodeDict.SUCCESS.getCode();

	private String msg = CodeDict.SUCCESS.getDesc();

	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}	
}

當反饋的Response成功的時候提示成功,失敗的時候提示失敗,當處於未登入狀態的時候讓他去登陸,對應的響應碼前對做出對應頁面轉換。

對應的依賴程式碼:

public enum CodeDict {
	SUCCESS("0","成功"),
	FAILED("1","失敗"),
	EXCEPT("2","異常"),
	
	
	LOGIN_NEED("9","未登入"),
	NOAUTH("10","無許可權"),
	NOT_PERMISSION_REQUEST("-1","不允許的操作");
	
	private String code;
	
	private String desc;
	
	private CodeDict(String code, String desc){
		this.code = code;
		this.desc = desc;
	}


	public String getCode() {
		return code;
	}


	public void setCode(String code) {
		this.code = code;
	}


	public String getDesc() {
		return desc;
	}


	public void setDesc(String desc) {
		this.desc = desc;
	}
} 

        上述程式碼只是反饋標準,沒有反饋資料,只是我們的反饋約定,成功或者失敗。如果說是查詢的話,我們需要把資料給帶到前端去的,所以到時候肯定就不止這些資料了,所以我們需要對資料進行更深一個層次的封裝:

public class CommonRsp<T> extends Response {

	private static final long serialVersionUID = 460456776638649480L;

	private T data;

	public T getData() {
		return data;
	}

	public void setData(T data) {
		this.data = data;
	}

}

這樣的話,當我們執行查詢操作的時候我們就可以把我們的資料給塞進去傳遞到前端進行解析。

        如果說這樣還不能滿足你現在的專案需求的話那肯定就是說分頁沒有嘍,如果說需要分頁的話,那麼我們就需要封裝另一個Page物件,然後往CommonRsp中塞Page物件反饋到前端讓其解析。

import java.util.List;

public class Page<T> {

	private Integer page;// 當前頁
	private Integer totalPage;// 總頁數
	private Integer totalRecords;// 總記錄數
	private Integer rows;// 每頁要顯示的資料條目
	private List<T> result;

	public Integer getPage() {
		return page;
	}

	public void setPage(Integer page) {
		this.page = page;
	}

	public Integer getTotalRecords() {
		return totalRecords;
	}

	public void setTotalRecords(Integer totalRecords) {
		this.totalRecords = totalRecords;
	}

	public Integer getRows() {
		return rows;
	}

	public void setRows(Integer rows) {
		this.rows = rows;
	}



	public List<T> getResult() {
		return result;
	}

	public void setResult(List<T> result) {
		this.result = result;
	}

	public void setTotalPage(Integer totalPage) {
		this.totalPage = totalPage;
	}

	public int getTotalPage() {
		totalPage = totalRecords % rows == 0 ? totalRecords / rows : totalRecords / rows + 1;
		return totalPage;
	}

}
        上述程式碼基本上就是我麼lotteryCMS的反饋標準,當然不是所有的請求都是這樣反饋資料的,比如你前端使用的是第三方tree外掛,而且你不能或者不方便指定tree的起始解析節點的情況下,那就只能按照當前外掛給的api文件去編碼,不要學死code,靈活一點。上述程式碼是隻有反饋的成功與否,沒有資料,那該怎麼辦呢?先不要往下看,自己先想一下。

相關推薦

返回資料標準(反饋資料標準化)

返回資料標準        我們做了一個後臺管理專案(lotteryCMS),為了解析時好解析,我們會對從db中拿到的資料進行封裝,當前端接受到資料的時候根據反饋的code就可以決定自己是否要解析這次查詢的資料了。        我們定義一個基本的返回物件Response,我

使用 springmvc 列印資料正常,返回到前端的 json 資料出現亂碼。

解決方法: 在 後臺對應方法上面的註解 @RequestMapping中,加入屬性: produces = “text/plain;charset=utf-8” 比如: @RequestMapping(value="/{foodId}",produce

vue向傳送資料並得到返回

let list = this.list.map((item) => { //這個是list, 後臺需要的引數之一 return Object.assign({ sdid: item.device,            

asp.net MVC從傳遞資料到前端的幾種資料形式:ViewBag,ViewData,Model

參考:https://blog.csdn.net/xiaouncle/article/details/77825389 在以上文章的基礎上做點相關補充。 1.ViewBag是一個動態欄位,而ViewData是一個字典 首先看後臺程式碼: public ActionResult T

用python在資料寫入到資料庫並讀取

用python在後端將資料寫入到資料庫: # coding:utf-8 import pandas as pd from sqlalchemy import create_engine # 初始化資料庫連線,使用pymysql模組 # MySQL的使用者:root, 密碼:147369, 埠:

JSON前端傳遞資料

網路層是http/tcp協議,其實是請求-響應,再說白了即使字串,不論後臺傳來的是什麼型別的資料,也不論前臺傳回的什麼型別的資料,網路層統統當作字串處理。最好能有一種通用的規則來編輯,轉換字串,這個標準或者協議就是JSON,JSON就是用來交換資料的,是一種string,一種獨立於平臺的資料格式。前

web開發中前端頁面是如何跟伺服器資料互動的

後端伺服器一般是指servlet容器,用於執行java源程式 常見的網頁有html,htm,shtml,asp,aspx,php,jsp等格式 前兩個常用於靜態網頁,後面幾個常用於動態網頁。 這裡前端網頁以比較常見的 xx.html 和 xx.jsp 網頁作為介紹,其它類似 &nbs

Vue2配置axios跨域和從資料賦值(踩坑記一)

Vue2配置axios跨域 這個系列主要記錄自己實習期間的踩坑過程,不完全準確,只能說這個方法確實解決了我自己的問題,歡迎交流,但不喜勿噴: main.js import Axios from 'axios' Vue.config.productionTip =

利用Ajax實現前端與.net實現資料互動

使用場景和需求:使用者在位址列輸入請求地址,先.net伺服器傳送頁面請求,該頁面包含Echart圖表,在頁面中向.net後端傳送資料請求,獲取資料後,將資料填充到Echart圖表中。其中包含帶參與不帶參的請求方式。 不帶引數的請求例子。假設使用者訪問的URI為/HomeEx/ResidentEndowmen

javaexcel資料匯入

寫一個簡單的demo 1、maven依賴 <dependency> <groupId>org.apache.poi</groupId> <artifactI

axios post請求向提交資料

axios向後端提交資料容易接收不到原因是傳參方式是request payload,引數格式是json,而並非用的是form傳參,所以在後臺用接收form資料的方式接收引數就接收不到了。post表單請求提交時,使用的Content-Type是application/x-www-form-ur

前端向獲取資料的三種方法

1、jQuery中的ajax get方法: $.ajax({ url:"v4/api/film/now-playing?t=1539401039415&page=1&count=5",     type:"GET",  success:(result

NODE處理資料ejs 渲染到頁面(小白的筆記)

前一陣學過前端渲染和後端渲染 沒幾天就忘沒了 今天來複習一下後端渲染 記個筆記 1.安裝 首先需要express模組,fs模組,ejs模組 npm install ejs --save 2. .ejs檔案 這裡和.html一樣 所以我只粘了body裡面的程式碼

Javaweb開發(前端和學習資料

JavaWeb開發學習資料開發環境:IDE: Intellij idea, Eclipse, Dreamweaver資料庫: MySQL伺服器: Tomcat後端:Java基礎入門 : 熟悉Java語法,String,陣列,集合框架,面向物件的封裝、繼承、多型、介面。推薦書籍

Bmob資料儲存使用問題記錄(一) ------ 下載資料表中的檔案

資料服務文件地址 :  http://doc.bmob.cn/data/csharp/index.html 其實呢,Bmob官方文件已經非常完善了,只是...還是在使用的過程中還是會遇到問題的~ 以後整Demo都想用這個,所以記錄一下遇到的問題~ 一.建表,增

JS實現動態生成表格並提交表格資料

本文例項介紹了JS實現動態生成表格並向後端提交表格資料的相關程式碼,分享給大家供大家參考,具體內容如下 先來看一下需求:在web頁面上動態的生成表格,並可以對錶格中的資料進行編輯,然後把表格中的資料提交至後端伺服器儲存。 那麼我們首先需要解決的是動態生成表格的問題

學習資料分享

1、一個很好的專案學習(Maven)https://github.com/zhangkaitao/es 2、Java資源大全中文版 http://www.importnew.com/14429.html 3、Java配置檔案解決方案 http://hao.jobbole.c

jquery ajax處理傳回資料

文件載入準備好之前傳回資料,一般採用json來處理。 $.ajax({ type: "POST",//以什麼方式請求 url: 'FolderAction!saveInformSe

ctrl+s實現提交資料

$(document).keydown(function(e){if( e.ctrlKey  == true && e.keyCode == 83 ){      // ctrl + s e.preventDefault();    // 阻止發生預設行為就

前端和資料互動(jquery ajax+python flask+mysql)

上web課的時候老師佈置的一個實驗,要求省市連動,基本要求如下: 1.用select選中一個省份。 2.省份資料傳送到伺服器,伺服器從資料庫中搜索對應城市資訊。 3.將城市資訊返回客戶,客戶用select控制元件進行顯示。 基本效果如下所示(頁面挺醜陋的