Ktorfit X 官方文档|3.2.3-3.0.4|建设中... Help

@Api

代码示例

  • 在这里使用 @Api 注解,它有一个 url 参数,默认值为 ""

@Api(url = "user") interface UserApi { @POST(url = "login") suspend fun login( @Field username: String, @Field password: String ): LoginDTO } @Serializable data class LoginDTO( val token: String )

生成实现

  • 以下代码将会自动生成,您只需要通过 Ktorfitx<DefaultApiScope> 的扩展属性 userApi 获取实例即可

  • 如果您想要了解 Ktorfitx<T> 相关的文档,进前往 创建 Ktorfitx 查看

private class UserApiImpl private constructor( private val config: KtorfitxConfig, ) : UserApi { override suspend fun login(username: String, password: String): LoginDTO { val response = this.config.httpClient.post { this.url("user/login") this.contentType(ContentType.Application.FormUrlEncoded) this.setBody(listOf("username" to username, "password" to password).formUrlEncode()) } return response.body() } @OptIn(InternalAPI::class) companion object { private var defaultApiScopeInstance: UserApi? = null private val defaultApiScopeSynchronizedObject: SynchronizedObject = SynchronizedObject() fun getInstanceByDefaultApiScope(ktorfitx: Ktorfitx<DefaultApiScope>): UserApi = defaultApiScopeInstance ?: synchronized(defaultApiScopeSynchronizedObject) { defaultApiScopeInstance ?: UserApiImpl(ktorfitx.config).also { defaultApiScopeInstance = it } } } } val Ktorfitx<DefaultApiScope>.userApi: UserApi @JvmName("userApiByDefaultApiScope") get() = UserApiImpl.getInstanceByDefaultApiScope(this)

注意事项

  • @Api@ApiScope 文档,其余文档将不展示接口和类的代码,以方便用户阅读文档

Last modified: 30 July 2025