Kotlin Multiplatform
问答
问1:为什么它能够支持 Kotlin Multiplatform,不需要反射吗?
答1:因为项目采用 ksp + kotlinpoet 的设计,从而在编译阶段生成网络请求代码,从而不需要使用反射,所以它支持跨平台
问2:开启混淆对使用有影响吗?
答2:没有影响,因为它是编译阶段生成的实现,注解不会被包含到最终混淆产物当中,所以不需要考虑这个问题
支持平台
平台 | 架构 / Target 编译类型 |
---|---|
Android | JVM – androidTarget (JVM 21) |
Desktop | JVM – jvm("desktop") (JVM 21) |
iOS | iosX64, iosArm64, iosSimulatorArm64 (Native) |
macOS | macosX64, macosArm64 (Native) |
watchOS | watchosX64, watchosArm32, watchosArm64, watchosSimulatorArm64, watchosDeviceArm64 (Native) |
tvOS | tvosX64, tvosArm64, tvosSimulatorArm64 (Native) |
Linux | linuxX64, linuxArm64 (Native executables) |
Windows | mingwX64 (Native executable via MinGW) |
Js | js(IR) – outputModuleName + nodejs() |
WasmJs | wasmJs (ExperimentalWasmDsl + nodejs()) |
什么是 Ktorfitx
前往 创建 Ktorfitx 查看如何创建
Ktorfitx
对象,并如何使用它
全部注解
目标 ANNOTATION_CLASS
@HttpMethod
:支持自定义 HTTP 方法类型,用于非标准请求方法,需标注在自定义注解上
目标 CLASS
目标 FUNCTION
@BearerAuth
:启用 Bearer token 授权方案,自动加入 Authorization 请求头@Headers
:声明静态请求头,生成时自动注入多个 headers@Mock
:定义 Mock 行为逻辑,用于测试或演示 Mock 数据@WebSocket
:将接口函数定义为 WebSocket 通道处理入口@Timeout
:配置请求的超时时间
目标 VALUE_PARAMETER
@Body
:设置请求体内容,支持配置多种序列化类型@Query
:将参数映射为 URL 查询参数(?key=value)@Field
:以 x-www-form-urlencoded 格式提交表单字段@Part
:表示 multipart/form-data 的表单部分,用于文件上传或复杂表单@Header
:动态注入 HTTP 请求头参数@Path
:映射路径参数,对 URL 模板中的{}
片段进行替换@Cookie
:从 Cookie 中提取参数值注入接口@Attribute
:用于传递请求属性(attribute),可携带元数据或上下文信息
注意事项 ⚠️
@Body
、@Field
、@Part
这三个注解不能在同一个请求中同时使用