API接口方式

1.接口包含如下元素

brand/search/{pageNo}/{pageSize}?startTime=“2021-08-02 22:00:00”&endTime=“2021-08-03 00:00:00”

Headers:
"authorization":""
"code":""


注意:
“2021-08-02 22:00:00”这个引号是不需要的,否则里面相当于两层引号

2.可能的一种接口设计方式

    @RequestMapping(value="test/{pageNo}/{pageSize}")
    public String testMultiApi( @RequestHeader("authorization")String auth,
                                @RequestHeader("code")String code,
                                @PathVariable(value="pageNo")Integer pageNo, 
                                @PathVariable(value="pageSize")Integer pageSize,
                                @RequestParam(value = "name")String name,
                                @RequestParam(value = "age")Integer age) {
        
        logger.info("---testMultiApi---");
        logger.info("---testMultiApi---auth:"+auth);
        logger.info("---testMultiApi---code:"+code);
        logger.info("---testMultiApi---pageNo:"+pageNo);
        logger.info("---testMultiApi---pageSize:"+pageSize);
        logger.info("---testMultiApi---name:"+name);
        logger.info("---testMultiApi---age:"+age);
        
        return "ok";
    }

 

3.访问接口的方式

Integer pageNo = 0;
Integer pageSize = 20;
Integer totalPage = 2;
Integer age = 30;
        
String url = "http://localhost:9500/operation/test/" + pageNo + "/" + pageSize + "?" + "name={name}&age={age}";

//        MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<String, Object>();//这种方式到接口时是数组
//        paramMap.add("name", "anenyang");
//        paramMap.add("age", age.toString());
        
Map<String,Object> pMap = new HashMap<String,Object>();
pMap.put("name", "anenyang");
pMap.put("age", age);
//  
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("authorization", "auth");
headers.set("x-system-code", "code");
        
HttpEntity<Map<String, Object>> httpEntity = new HttpEntity<Map<String, Object>>(null,headers);    
//
RestTemplate rest = new RestTemplate();
        
ResponseEntity<String> res = rest.exchange(url,HttpMethod.GET, httpEntity, String.class, pMap);
if(StringUtil.isNull(res)) {
            
     log.info("--<testApi>--res is null");
    
}
log.info("--<testApi>--:::"+res.getBody());

 

4.接口说明

SpringBoot提供的获取参数注解包括:@PathVariable,@RequestParam,@RequestBody,三者的区别如下表:

 

posted @ 2021-09-16 13:57  jason47  阅读(208)  评论(0编辑  收藏  举报