# api-remote-extend **Repository Path**: msgcode/api-remote-extend ## Basic Information - **Project Name**: api-remote-extend - **Description**: 基于SpringBoot+SpringCloud的远程调用扩展, 替代Feign - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2018-02-01 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # API REMOTE EXTEND (还没想到名字) > 前言 你在用Feign时是否有遇到传参十分麻烦. 传多个参数又得加上 @RequestParam 和 @RequestBody 基于SpringBoot+SpringCloud FeignClient的替代品, 约定优于配置 > 使用教程 - 基本配置 1. 在SpringBoot的启动类加上配置 ``` @EnableApiRemoteExtend(basePackage = "cn.msgcode.service.v1") ``` - 创建远程调用接口 1. @ApiClient用于标记调用客户端 2. serviceId为注册到eureka的服务名 3. module定义模块 ``` @ApiClient(serviceId = "wechat-service-test", module = "test") public interface HelloService { Object test(String param1, String param2); } ``` - 远程接口实现远程调用接口(没有特别作用,单纯为了保证方法,参数类型和返回值类型一样) 1. @Service单纯注册成Spring Bean 2. @ApiModule(name = "test") 标记为远程接口 name和 @ApiClient的module相同 ``` @Service @ApiModule(name = "test") public class TestServiceImpl implements HelloService { private Logger logger = LoggerFactory.getLogger(TestServiceImpl.class); @Override public String test(String param1, String param2) { logger.info("show test param1:{} param2:{}", param1, param2); return param1 + param2; } } ``` >##后续版本 - 后续版本有几个目标: 1. 修复各类bug 2. 增强错误提示 3. 增强安全性 4. 增强可定制化配置