<!-- Space: qifu -->
<!-- Parent: 后端技术&知识&规范 -->
<!-- Parent: 技术方案 -->
<!-- Parent: 基建 -->
<!-- Parent: 00-基础组件 -->
<!-- Parent: 00-EngineStarterFeign使用指南 -->
<!-- Title: 20250509-engine-starter-feign-1.1.0 -->

<!-- Macro: :anchor\((.*)\):
     Template: ac:anchor
     Anchor: ${1} -->
<!-- Macro: \!\[.*\]\((.+)\)\<\!\-\- width=(.*) \-\-\>
     Template: ac:image
     Url: ${1}
     Width: ${2} -->
<!-- Macro: \<\!\-\- :toc: \-\-\>
     Template: ac:toc
     Printable: 'false'
     MinLevel: 2 
     MaxLevel: 4 -->
<!-- Include: 杂项/声明文件.md -->

<!-- :toc: -->

# engine-starter-feign 使用教程

> 基于 Feign 的通用封装  
> 具体使用可参考 [engine-sample > engine-sample-starter-web](../engine-sample/engine-sample-starter-web)

## 功能特性

- [X] 请求头添加内部请求标识 `X-QiFu-From-In: true`
- [X] 请求头透传
- [X] 请求结果解析映射（解封装 `Result`）

-------

## 快速使用

- **注意：** `qifu-saas-parent >= 1.1.0-SNAPSHOT`
- **注意：** 启动类 `@ComponentScan` 需要变更为如下形式
- ```java
  @ComponentScan(value = "com.yuanmeng.*",
          excludeFilters = {
                  @ComponentScan.Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
                  @ComponentScan.Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class)
          })
  @SpringBootApplication
  public class SampleStarterWebApplication {
  
      public static void main(String[] args) {
          SpringApplication.run(SampleStarterWebApplication.class, args);
      }
  
  }
  ```

### 添加依赖

```xml

<dependency>
    <groupId>com.yuanmeng.engine</groupId>
    <artifactId>engine-starter-feign</artifactId>
</dependency>
```

------

## 完整默认配置文件

```yaml
yuanmeng:
  feign:
    #- 开启feign自动配置
    enable: true
    #- 开启请求头内部标识
    enable-contract: true
    #- 开启旧包兼容
    enable-ignore: true
    #- 开启结果解析
    enable-decoder: true
    #- 开启请求头传递
    enable-interceptor: true
    #- 链接超时时间
    connect-timeout: 10
    connect-time-unit: seconds
    #- 读取超时时间
    read-timeout: 60
    read-time-unit: seconds
```