一、接口的定义
1.1 定义请求模型QueryPageRequest,此模型作为查询条件类型。为后期扩展需求,请求类型统一继承RequestData类型。
package com.xuecheng.framework.domain.cms.request;
import com.xuecheng.framework.model.request.RequestData;
import lombok.Data;
@Data
public class QueryPageRequest extends RequestData {
//站点id
private String siteId;
//页面ID
private String pageId;
//页面名称
private String pageName;
//别名
private String pageAliase;
//模版id
private String templateId;
1.2 响应结果类型,分页查询统一使用QueryResponseResult
定义接口
在 Api接口工程专门定义接口,在Api工程单独定义接口的原因如下:
1、接口集中管理
2、Api工程的接口将作为各微服务远程调用使用。
页面查询接口定义如下:
public interface CmsPageControllerApi {
public QueryResponseResult findList(int page, int size, QueryPageRequest queryPageRequest) ;
此接口编写后会在CMS服务工程编写Controller类实现此接口。
二、为了严格按照接口进行开发,提高效率,对请求及相应格式进行规范化。
1.get 请求时,采用key/value格式请求,SpringMVC可采用基本类型的变量接收,也可以采用对象接收。
2.Post请求时,可以提交form表单数据(application/x-www-form-urlencoded)和Json数据(Content-
Type=application/json),文件等多部件类型(multipart/form-data)三种数据格式,SpringMVC接收Json数据使用@RequestBody注解解析请求的json数据。
3.响应结果统一信息为:是否成功、操作代码、提示信息及自定义数据。
4.响应结果统一格式为json。
三、Api定义约束
Api 定义使用SpringMVC来完成,由于此接口后期将作为微服务远程调用使用,在定义接口时有如下限制:
1、@PathVariable 统一指定参数名称,如:@PathVariable(“id”)
2、@RequestParam统一指定参数名称,如:@RequestParam(“id”)