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

时间:2019-05-01 18:28:14

标签: android kotlin ktor

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

我不知道这可以走多远,但是我可以想象路由是“暴露”给前端应用程序消费的(就像Retrofit带有注释的接口一样)和(反序列化)逻辑也是共享的。

因此,从根本上讲,可以在服务器(我想使用Ktor)和Android应用程序之间“共享” API响应的“ POJO / POKO”表示形式,还可以“共享”具有预期参数的可能端点。 Java / Kotlin)?

1 个答案:

答案 0 :(得分:0)

是的

您可以使用如下所示的多项目gradle构建来构建代码:

  • API模块:将DTO,序列化/反序列化和路由放在此处作为常量。在这里也为您的api定义一个http客户端(Ktor也有一个http客户端)。您还可以使用OpenAPI定义http api,然后仅生成客户端。
  • 服务器模块:依靠API模块来实现定义了DTO的路由。并且,如果您在API中定义了客户端,请测试您的服务器实现是否满足要求。
  • Android模块:取决于API模块。使用客户端,并对其进行模拟以进行测试。

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