Kotlin版OpenAPI Generator多apiKey配置及重复导入问题
解决Kotlin版OpenAPI Generator多API Key配置及重复导入问题
重复导入的原因
你定义的每个apiKey安全方案(Apikey和Loginkey),在代码生成时都会单独触发一次ApiKeyAuth类的导入逻辑。当前版本的Kotlin生成模板没有对重复导入做去重处理,因此会生成重复的import org.openapitools.client.auth.ApiKeyAuth语句。
多API Key的正确配置与认证使用
1. 完善API规范的安全约束
在OpenAPI规范里,需要明确指定接口要启用的安全方案,支持全局配置或单路径单独配置:
# 全局约束:所有接口默认启用两个API Key认证 security: - Apikey: [] - Loginkey: [] # 单路径配置:仅该接口启用双API Key认证 paths: /user/profile: get: security: - Apikey: [] - Loginkey: [] summary: 获取用户信息 # 其他接口定义...
2. 生成代码后的认证配置
生成Kotlin代码后,需在客户端分别初始化两个API Key的认证实例:
val apiClient = ApiClient() // 配置Apikey val apikeyAuth = apiClient.getAuthentication("Apikey") as ApiKeyAuth apikeyAuth.apiKey = "你的apikey值" // 配置Loginkey val loginkeyAuth = apiClient.getAuthentication("Loginkey") as ApiKeyAuth loginkeyAuth.apiKey = "你的loginkey值" // 用配置好的apiClient调用接口 val userApi = UserApi(apiClient) val userProfile = userApi.getUserProfile()
3. 修复重复导入的方案
- 临时处理:手动删除生成代码中重复的
import语句,不影响代码功能。 - 自定义模板:若需长期解决,可修改OpenAPI Generator的Kotlin模板,在处理导入的片段中添加去重逻辑。
- 版本升级:尝试升级到最新版OpenAPI Generator,官方可能已修复该重复导入的bug。
内容的提问来源于stack exchange,提问作者mszan
相关产品推荐
相关产品推荐

