# WMS 微服务 Feign 使用指南
## 一、OpenFeign 简介
OpenFeign 是一个声明式的 Web Service 客户端,它让微服务之间的调用变得更简单。
使用 Feign 只需要创建接口并在接口上添加注解即可,无需手动构建 HTTP 请求。
## 二、项目中的 Feign 配置
### 2.1 依赖配置
已在所有微服务的 `pom.xml` 中添加以下依赖:
```xml
org.springframework.cloud
spring-cloud-starter-openfeign
4.1.3
io.github.openfeign
feign-okhttp
13.5
```
### 2.2 Feign Client 配置
**配置类**: `org.cpte.feign.config.FeignClientConfiguration`
主要配置项:
- **HTTP 客户端**: 使用 OkHttp
- **连接超时**: 5 秒
- **读取超时**: 10 秒
- **日志级别**: BASIC(可调整为 FULL 查看完整日志)
- **重试机制**: 最多重试 3 次
### 2.3 Fallback 降级处理
为每个 Feign Client 都配置了 FallbackFactory,当服务调用失败时会执行降级逻辑:
- `BasicServiceFallbackFactory` - 基础服务降级
- `InventoryServiceFallbackFactory` - 库存服务降级
- `ScheduleServiceFallbackFactory` - 调度服务降级
## 三、已有的 Feign Client
### 3.1 基础服务 Client
**接口**: `org.cpte.feign.client.BasicServiceClient`
**功能**:
- 获取物品信息(按 ID/编码)
- 获取区域信息(按 ID/编码)
- 获取点位信息(按 ID/编码)
- 批量查询物品/点位列表
**使用示例**:
```java
@Autowired
private BasicServiceClient basicServiceClient;
// 获取物品信息
Result