基于springboot的接口开发示例

基于springboot的接口开发示例

最近接触了一些java开发的东西,为了能够更加深入的了解接口,更好的做接口测试,本人决定亲自去开发接口,了解接口内部的实现原理,废话不多说,直接上示例:

这次开发的是一个分页查询的接口,方法为get,基于http协议,为了增强以后接口开发的熟练度,特此记录一下springboot开发过程中,每一层都需要干些什么:

1.Controller层
这层专注于请求的处理以及请求参数的接收,同时会调用service层中实现好的方法,具体参考如下:

/**
 * 添加Controller注解,声明此类为前置控制器
 */
@Controller
public class ApiCaseController {

    /**
     * 注入service类
     */
    @Autowired
    ApiService apiService;

    /**
     * 前端分别传入了apiUrl,project,pageSize,offset,sort,sortOrder参数
     * 注意:@RequestParam(value = "project",required = false)这表示接收到的project参数赋值给了形参project
     * required=false表明该参数可传可不传,如果没有该参数,就必须传入,不然就会报错
     * @ResponseBody 该注解表示把返回的实体转化为响应实体,如把HashMap转化成Json,或者直接把String返回给前端,而不通过视图解析器解析
     * @param apiUrl
     * @param project
     * @param pageSize
     * @param offset
     * @param sort
     * @param sortOrder
     * @return
     */

        @ApiOperation("获取接口列表")
        @RequestMapping(value="/getApiList",method = RequestMethod.GET)
        public @ResponseBody Map getApiList(@RequestParam(value = "address",required = false) String apiUrl,
                                      @RequestParam(value = "project",required = false) String project,
                                      int pageSize, int offset, String sort, String sortOrder){
            Map map=null;
            map=apiService.selectAllApi(apiUrl,project,pageSize,offset,sort,sortOrder);
            return map;
    }
}

2.Service层
service层主要是业务逻辑层,是最重要的一部分,夹在Controller层和Dao层之间。

@Service
public interface ApiService {

    Map selectAllApi(String apiUrl, String project, int pageSize, int offset, String sort, String sortOrder);


}

service层实现类,集成该service接口

/**
 * @Service 注解声明此类为service层,赋值为apiService,以便注入到Controller层
 */
@Service(value = "apiService")
public class ApiServiceImpl implements ApiService{
    @Autowired
    APIDao apiDao;


    @Override
    public Map selectAllApi(String apiUrl, String project, int pageSize, int start, String sort, String sortOrder) {
        Map page=new HashMap();
        Map content1=new HashMap();
        Map content2=new HashMap();
        content1.put("apiUrl",apiUrl);
        content1.put("project",project);
        content1.put("pageSize",pageSize);
        content1.put("start",start);
        content1.put("sort",sort);
        content1.put("sortOrder",sortOrder);
        List apiList=apiDao.selectAllApi(content1);
        content2.put("apiUrl",apiUrl);
        content2.put("project",project);
        int total=apiDao.countApiList(content2);
        page.put("data",apiList);
        page.put("total",total);
        return page;
    }

}

3.Dao接口
用于和数据库交互

/**
 * Mapper注解
 */
@Mapper
public interface APIDao {
	
	/**
	 * 根据项目id查询关联api
	 * @param proid
	 * @return
	 */

	List selectAPIByPro(String proid);

	/**
	 * 根据条件查询接口列表,分页
	 * @param content
	 * @return
	 */
	List selectAllApi(Map content);

	int countApiList(Map content2);
}

4.Mapper文件





    
        t_api
    

    
        frowid,faid,fproid,fapiname,faurl,ftype,fcontenttype,fcasenum,fcreatetime,fupdatetime
    

    
        faid,fproid,fapiname,faurl,ftype,fcontenttype,fcasenum,fcreatetime,fupdatetime
    
    
    
    
    

你可能感兴趣的:(java开发基础)