栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021-10-01

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-01

业务代码思路(一):根据接口文档写接口

文章目录
  • 前言
  • 一、什么是接口文档?
  • 二、案例


前言

由前后端开发工程师共同定义接口、写接口文档再根据接口文档去开发,这就是接口文档作用。


一、什么是接口文档?

包含方法,url,请求参数,返回参数的接口开发文档就是接口文档:

方法:也就是我们常写的新增,删除,修改,查询

url:调用方法,一般是从前端调后端的方法地址

请求参数:字段、说明、类型、备注、是否必填

返回参数
1、如果只返回接口调用成功还是失败(新增、删除、修改等),则只有一个结构体:code和message两个参数;

2、如果要返回某些参数,则有两个结构体:一个是是code/mesage/data;另一个是data里写返回的参数,data是object类型;

3、如果要返回列表,那么有三个结构体:第三个是code/mesage/data,data是object,里面放page/size/total/ totalPage/list 5个参数,其中list是Arrary类型,list里放object,object里是具体的参数。

二、案例

1.接口文档返回的Json数据格式如下
(1).返回对象,

{"code":" ","msg":" ","time":...,"object":{}}

(2).返回数组,

{"code":" ","msg":" ","time":...,"items":[{},{}]}

2.建立abstractJsonObject(Json数据的基类)

public class abstractJsonObject {
    //code
	private String code;
	//msg
	private String msg;
 
	private Long time = new Date().getTime();
 
	public String getCode() {
		return code;
	}
 
	public void setCode(String code) {
		this.code = code;
	}
 
	public Long getTime() {
		return time;
	}
 
	public void setTime(Long time) {
		this.time = time;
	}
 
	public String getMsg() {
		return msg;
	}
 
	public void setMsg(String msg) {
		this.msg = msg;
	}
 
	public void setContent(String code, String msg) {
		this.code = code;
		this.msg = msg;
	}
 
	public void setStatusObject(StatusObject statusObject) {
		this.code = statusObject.getCode();
		this.msg = statusObject.getMsg();
	}
}

3.其中,statusObject是一个状态对象,封装了状态码(code)和状态信息(msg)

public class statusObject {
	// 状态码
	private String code;
 
	// 状态信息
	private String msg;
 
	public statusObject(String code, String msg) {
		super();
		this.code = code;
		this.msg = msg;
	}
 
	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;
	}
}

4.建立json对象类singleObject

public class singleObject extends sbstractJsonObject {
 
	private Object object;
 
	public Object getObject() {
		return object;
	}
 
	public void setObject(Object object) {
		this.object = object;
	}
 
}

5.建立json数组类listObject

public class listObject extends abstractJsonObject {
 
	// 列表对象
	private List items;
 
	public List getItems() {
		return items;
	}
 
	public void setItems(List items) {
		this.items = items;
	}
 
}

6.jackJsonUtils生成json数据和解析json数据

public class jackJsonUtils {
	static ObjectMapper objectMapper;
	
	public static  T fromJson(String content, Class valueType) {
		if (objectMapper == null) {
			objectMapper = new ObjectMapper();
		}
		try {
			return objectMapper.readValue(content, valueType);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
 
	
	public static String toJson(Object object) {
		if (objectMapper == null) {
			objectMapper = new ObjectMapper();
		}
		try {
			return objectMapper.writevalueAsString(object);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
}

7.创建一个类继承自HttpServlet,例如studentInq.java

public class studentInq extends HttpServlet {
	private static final long serialVersionUID = 1L;
 
	
	public StudentsInq() {
		super();
		// TODO Auto-generated constructor stub
	}
 

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		
	}
 

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
 
		doGet(request, response);
	}
 
}

8 .新建一个接口studentService,并实现。

public interface studentService {
	public List getAllStudents();
}
public class studentServiceImpl implements studentService{
 
	@Override
	public List getAllStudents() {
		// TODO Auto-generated method stub
		return StudentBusiness.getAllStudents();
	}
 
}

9 。我们实现Servlet的doGet(),具体代码:

List list = new studentServiceImpl().getAllStudents();
		ListObject listObject=new ListObject();
		listObject.setItems(list);
		listObject.setStatusObject(StatusHouse.COMMON_STATUS_OK);
		String responseText = jackJsonUtils.toJson(listObject);
		ResponseUtils.renderJson(response, responseText);

其中,ResponseUtils是将返回的json数据写入到response中。至此,生成json数据已经成功。
10 .连接数据库

public class DBHelper {
	
	 public static final String url = "jdbc:mysql://localhost:3306/students_manage";  
	    public static final String name = "com.mysql.jdbc.Driver";  
	    public static final String user = "****";  
	    public static final String password = "******";  
	  
	    public Connection conn = null;  
	    public PreparedStatement pst = null;  
	  
	    public DBHelper(String sql) {  
	        try {  
	            Class.forName(name);//
	            conn = DriverManager.getConnection(url, user, password);//
	            pst = conn.prepareStatement(sql);//
	        } catch (Exception e) {  
	            e.printStackTrace();  
	        }  
	    }  
	  
	    public void close() {  
	        try {  
	            this.conn.close();  
	            this.pst.close();  
	        } catch (SQLException e) {  
	            e.printStackTrace();  
	        }  
	    }  
 
}

11 .在浏览器中输入http://localhost:8080/mServer/studentInq,会出现数据。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/285376.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号