《spring实战》读书笔记之初识spring RestTemplate。
首先需要先了解下什么是REST。
REST:官方解释,表述性状态转移。
感觉还是不知所云,参考下怎样用通俗的语言解释REST,以及RESTful?
即URL定位资源,用HTTP动词(GET,POST,DELETE等)描述操作。
REST API通过对外暴露URL,向客户端,h5等提供统一一套API服务。
Http请求方式主要有以下4种:
- GET:请求URL得到资源,用于查询资源(query)
- POST:插入新内容,用于插入资源(insert)
- PUT:用于修改某个内容,若不存在则添加(update)
- DELETE:删除某个内容(delete)
请求类型 | 方法 | 备注 |
---|---|---|
GET | getForObject、getForEntity | |
POST | postForLocation、postForObject | postForLocation返回新创建资源的url |
PUT | put | |
DELETE | delete |
虽然只写了这6个方法,但是方法中的重载不止一种。
具体的API用法:参考API文档
下面就get方式举例说明用法:
getForEntity 返回封装了数据对象的ResponseEntity对象
@Test
public void test_get() {
String url = "http://localhost:8080/admin";
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<JSONObject> jsonObjectResponseEntity =restTemplate.getForEntity(url,JSONObject.class);
// JSONObject json = restTemplate.getForEntity(url, JSONObject.class).getBody();
}
getForObject 返回请求的结果对象
@Test
public void test_get2() {
String url = "http://localhost:8080/admin";
RestTemplate restTemplate = new RestTemplate();
Map<String, String> params = new HashMap<String, String>();
params.put("request", "test");
ResultDo resultDo = restTemplate.getForObject(url, ResultDo.class,params);
}
我觉得看完这个,给我的启发就是,除了平时我们对HTTP接口用httpclient进行请求以外,对spring rest api,我们可以用spring restTemplate进行请求。