发布于 2022-07-26 03:32:21
如果使用openapi-generator-cli
生成代码,则选项enumUnknownDefaultCase
应该通过添加--additional-properties=enumUnknownDefaultCase=true
来工作。
示例:
java -jar openapi-generator-cli-6.0.0.jar -i "example.com/swagger?format=openapi" -g kotlin --library=jwm-retrofit2 -o my-api-sdk --additional-properties=enumUnknownDefaultCase=true
它将创建一个SerializerHelper类,它将向Moshi构建器添加额外的枚举适配器,如下所示
moshiBuilder
.add(MyEnum::class.java, EnumJsonAdapter.create(MyEnum::class.java).withUnknownFallback(MyEnum.unknown_default_open_api))
.add(...)
但是它还没有完成,当初始化您的ApiClient时,您必须强制它与枚举适配器一起使用MoshiBuilder,默认情况下它不会使用那个适配器。
Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(ScalarsConverterFactory.create())
++ .addConverterFactory(MoshiConverterFactory.create(Serializer.moshi))
-- .addConverterFactory(MoshiConverterFactory.create(serializerBuilder.build()))
.apply {
if (converterFactory != null) {
addConverterFactory(converterFactory)
}
}
https://stackoverflow.com/questions/73069818
复制相似问题