Kotlin Multiplatform 平台是为了实现类似 RESTful 风格的网络请求接口定义,使用代码生成实现类
Ktor Server 是为了自动生成路由层代码,自动管理路由代码,并可以通过注解获取各种类型参数
http://annotation-engine.github.io/ktorfitx-document/start.html
建设中...
Kotlin 2.3.20
Ktor 3.4.2
KSP 2.3.6
KotlinPoet 2.3.0
支持的源集:
- commonMain, nativeMain, appleMain
- androidMain
- androidNativeMain, androidNativeArm32Main, androidNativeArm64Main, androidNativeX86Main, androidNativeX64Main
- desktopMain
- iosMain, iosArm64Main, iosSimulatorArm64Main, iosX64Main
- watchosMain, watchosArm32Main, watchosArm64Main, watchosSimulatorArm64Main, watchosSimulatorDeviceArm64Main, watchosX64Main
- tvosMain, tvosArm64Main, tvosSimulatorArm64Main, tvosX64Main
- linuxMain, linuxArm32HfpMain, linuxArm64Main, linuxX64Main
- mingwMain, mingwX64Main
- macosMain, macosArm64Main, macosX64Main
- webMain, jsMain, wasmJsMain
依赖说明:
请使用和 ktorfitx 相同版本的 ktor 版本,以保证他们的最佳兼容性
-
Kotlin Multiplatform
- cn.ktorfitx:multiplatform-core
- cn.ktorfitx:multiplatform-annotation
- cn.ktorfitx:multiplatform-websockets
- cn.ktorfitx:multiplatform-mock
- cn.ktorfitx:multiplatform-ksp
- cn.ktorfitx:multiplatform-gradle-plugin
- cn.ktorfitx:android-gradle-plugin (Android Only)
-
Ktor Server
- cn.ktorfitx:server-core
- cn.ktorfitx:server-annotation
- cn.ktorfitx:server-websockets
- cn.ktorfitx:server-auth
- cn.ktorfitx:server-ksp
- cn.ktorfitx:server-gradle-plugin
-
Common
- cn.ktorfitx:common-ksp-util
@HttpMethod自定义 HttpMethod
@Api定义接口
@GETGET 请求@POSTPOST 请求@PUTPUT 请求@DELETEDELETE 请求@PATCHPATCH 请求@OPTIONSOPTIONS 请求@HEADHEAD 请求@BearerAuth启用授权@Headers多个请求头@Mock定义 Mock@WebSocketWebSocket@Timeout超时时间@Prepare预创建
@Body请求体@Query请求参数@Fieldx-www-form-urlencoded 字段@Partform-data 字段@Header动态请求头@Pathpath 参数@Cookiecookie 参数@Attributeattribute 参数@DynamicUrl动态 url 参数@Queries动态请求参数@Fields动态 x-www-form-urlencoded 字段@Parts动态 form-data 字段@Attributes动态 attribute 参数
@HttpMethod自定义 HttpMethod
@Controller控制器
@GETGET 请求@POSTPOST 请求@PUTPUT 请求@DELETEDELETE 请求@PATCHPATCH 请求@OPTIONSOPTIONS 请求@HEADHEAD 请求@Authentication路由授权@WebSocketWebSocket@WebSocketRawWebSocketRaw@Regex正则匹配 path@Timeout超时时间
@Query查询参数@Body请求体参数@Fieldx-www-form-urlencoded 字段@PartFormform-data 参数@PartFileform-data 文件@PartBinaryform-data 二进制参数@PartBinaryChannelform-data 数据流@Pathpath 参数,支持正则表达式@Header请求头参数@Attributeattribute 参数@Cookiecookie 参数
- 在模块级 build.gradle.kts 中配置
- 请在 Android 模块中的 build.gradle.kts 配置一下内容,请按照实际情况编写
- 注意:此处不包含 ktor 的依赖,请自行添加
plugins {
// 省略其他...
// 在这里使用 Gradle 插件
id("cn.ktorfitx.android") version "<latest>"
}
ktorfitx {
// 将所有提示文本改为中文,默认:ENGLISH,支持:ENGLISH, CHINESE
language = KtorfitxLanguage.CHINESE
websockets {
enabled = true // 启用 WebSockets 功能,默认关闭
}
mock {
enabled = true // 启用 Mock 功能,默认关闭
}
}- 请在 Kotlin Multiplatform 模块中的 build.gradle.kts 配置一下内容,请按照实际情况编写
- 注意:此处不包含 ktor 的依赖,请自行添加
plugins {
// 省略其他...
// 在这里使用 Gradle 插件
id("cn.ktorfitx.multiplatform") version "<latest>"
}
ktorfitx {
// 将所有提示文本改为中文,默认:ENGLISH,支持:ENGLISH, CHINESE
language = KtorfitxLanguage.CHINESE
websockets {
enabled = true // 启用 WebSockets 功能,默认关闭
}
mock {
enabled = true // 启用 Mock 功能,默认关闭
}
}plugins {
// 省略其他...
// 在这里使用 Gradle 插件
id("cn.ktorfitx.server") version "<latest>"
}
ktorfitx {
// 将所有提示文本改为中文,默认:ENGLISH,支持:ENGLISH, CHINESE
language = KtorfitxLanguage.CHINESE
websockets {
enabled = true // 启用 WebSockets 功能,默认关闭
}
auth {
enabled = true // 启用授权功能,默认关闭
}
generate {
this.packageName = "<package name>" // 生成文件目录,默认:<package>.generated
this.funName = "<function name>" // 生成方法名,默认:generateRoutes
this.fileName = "<filename>" // 生成文件名,默认:GenerateRoutes,可以不加 .kt 后缀
}
}支持编译期错误检查,当您使用的方式不正确时,Ktorfitx 会在编译期提供错误检查,以帮助用户更快的定位错误 目前支持英文和中文两种语言,如果需要更多语言,请联系我
当返回值是 Result<T> 时,会自动处理异常,反之则需要自行处理异常逻辑