OpenFeign 提供了一系列注解来配置和定制 HTTP 请求,以便定义远程服务的 API。以下是一些常用的注解和配置方式:
-
@FeignClient
:用于指定要调用的服务名称
,可以配置服务的 URL
、负载均衡策略
等信息。 -
@RequestMapping
:用于定义请求的 URL、HTTP 方法、请求参数等信息。 -
@RequestParam
:用于传递请求参数。 -
@PathVariable
:用于传递 URL 中的路径参数。 -
@RequestHeader
:用于传递请求头信息。
代码如下:
@FeignClient(name = "service-b", url = "http://service-b:8080")
public interface ServiceBClient {
@RequestMapping(method = RequestMethod.GET, value = "/api/resource")
String getResource();
@RequestMapping(method = RequestMethod.POST, value = "/api/resource/update")
String updateResource(@RequestBody Resource resource);
}
@RestController
public class ServiceAController {
@Autowired
private ServiceBClient serviceBClient;
@GetMapping("/consume")
public String consumeResourceFromB() {
return serviceBClient.getResource();
}
@PostMapping("/update")
public String updateResourceInB(@RequestBody Resource resource) {
return serviceBClient.updateResource(resource);
}
}
在上面代码中,通过注解配置了请求的 URL、HTTP 方法和参数传递方式,OpenFeign 会根据这些配置生成代理对象,并发送 HTTP 请求到远程服务。