首页 > 解决方案 > 是否可以使用 Ktor 和/或 Kotlin 多平台在 Rest API 和 Android 应用程序之间“共享”公开的数​​据?

问题描述

主要思想是拥有一种可以在后端(使用 Ktor)和 Android 应用程序之间共享的“序列化/反序列化模块”。

我不知道这能走多远,但我想这些路由是“暴露”的,供前端应用程序使用(就像 Retrofit 使用带有注释的接口一样)并且(反)序列化逻辑是共享的也。

所以基本上,是否可以在服务器(我猜使用 Ktor)和 Android 应用程序(Java / Kotlin ) ?

标签: androidkotlinktor

解决方案


是的。

您可以使用这样的多项目 gradle 构建来构建您的代码:

  • API 模块:将您的 DTO、序列化/反序列化和路由作为常量放在这里。在这里也为您的 api 定义一个 http 客户端(Ktor 也有一个 http 客户端)。OpenAPI 也是您在定义 http api 然后只是生成客户端时可能会考虑的东西。
  • 服务器模块:依赖 API 模块来实现定义了 DTO 的路由。如果您在 API 中定义了客户端,请测试您的服务器实现是否满足它。
  • Android 模块:依赖于 API 模块。使用客户端,并模拟它进行测试。

这有点像Dependency Inversion Principal 来自 SOLID 的。您在单独的模块(API 模块)中定义数据交换的接口。然后,实现(服务器模块)和更高级别的代码(Android 模块)都依赖于它的使用和实现。


推荐阅读