云侧接口SDK设计思路
SDK设计的初衷,是为了简化商户接入的过程。在此前的支撑沟通中,发现主要的问题在于签名验签等固有机制的处理上,因此需要将该部分逻辑封装,使开发者聚焦于接口业务出入参的处理上。
然而业务当前仍处于快速迭代发展过程中,不断存在新的产品能力及开放接口上线,为了便于后续快速更迭,sdk内接口的新增需要能做到流程体系化——依托于云侧接口的原始设计,可以自动生成新的sdk接口及配套验证demo。
- 整个业务对接过程的配置,涉及到全局的对接配置放到一个类中,涉及到单个请求的配置,放到一个类中。
- 使用全局配置类初始化client对象,在调用方法时单接口的配置可选传入。
- 为了便于商户使用自定义的http client。对外定义了doPost和doGet接口使业务开发者自由实现。
- 最终对外暴露一个execute(String httpMethod, String apiUrl, Class rspType, RequestConfig requestConfig, Object requestObj)方法。这里除了requestConfig和requestObj,其他的接口信息,都可以在接口定义中提取到。
- 最后使用swagger-codegen插件,配合自定义的mustache模板,生成GenerateApiService.generateFunc方法,该方法内,入参就仅需传入入参及请求配置了。最终暴露到开发者层面的使用也将非常简洁。
- 同理,也可以模板化自动生成test用例,使用接口设计时定义的示例入参做连通性访问的测试。