本文节选自《疯狂Spring Cloud微服务架构实战》
京东购买地址::https://item.jd.com/12256011.html
当当网购买地址::http://product.dangdang.com/25201393.html
Spring Cloud教学视频:http://blog.youkuaiyun.com/boxiong86/article/details/78399104
本文要点
Feign编码器与解码器
Feign的编码器与解码器
本小节所有的案例都是单独使用Feign,Feign在Spring Cloud的使用将在后面章节讲述,请读者注意该细节。
编码器
向服务发送请求的过程中,有些情况需要对请求的内容进行处理。例如服务端发布的服务接收的是JSON格式参数,而客户端使用的是对象,这种情况就可以使用编码器,将对象转换为JSON字符串。
为服务端编写一个REST服务,处理POST请求,请见代码清单5-7。
代码清单5-7:codes\05\5.1\rest-server\src\main\java\org\crazyit\cloud\MyController.java
@RequestMapping(value = "/person/create", method = RequestMethod.POST,
consumes = MediaType.APPLICATION_JSON_VALUE)
public String createPerson(@RequestBody Person person) {
System.out.println(person.getName() + "-" + person.getAge());
return "Success, Person Id: " + person.getId();
}
控制器中,发布了一个“/person/create”的服务,需要传入JSON格式的请求参数。在客户端中,要调用该服务,先编写接口,再使用注解进行修饰,请见代码清单5-8。
代码清单5-8:codes\05\5.2\feign-use\src\main\java\org\crazyit\feign\PersonClient.java
public interface PersonClient {
@RequestLine("POST /person/create")
@Headers("Content-Type: application/json")
String createPerson(Person person);
@Data
class Person {
Integer id;