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,三者的区别如下表: