Можно ли использовать мультиплатформу Ktor и / или Kotlin для «обмена» открытыми данными между Rest API и Android-приложением? - PullRequest
0 голосов
/ 01 мая 2019

Основная идея заключается в том, чтобы иметь своего рода «модуль сериализации / десериализации», который можно было бы разделить между бэкэндом (используя Ktor) и приложением Android.

Я не знаю, насколько «далеко» это может зайти, но я представляю, что маршруты «выставлены» для использования приложением внешнего интерфейса (как это делает Retrofit с его интерфейсом с аннотациями) и (де) сериализация логика тоже разделяется

По сути, возможно ли «обмениваться» не только представлениями «POJO / POKO» ответов API, но и возможными конечными точками с ожидаемыми параметрами между сервером (я полагаю, с помощью Ktor) и приложением Android ( Ява / Котлин)?

1 Ответ

0 голосов
/ 02 мая 2019

Да.

Вы можете структурировать свой код с помощью многопроектной сборки Gradle следующим образом:

  • Модуль API : укажите здесь свои константы DTO, поисковую / десериализацию и маршруты. Определите также http-клиент для вашего API (у Ktor также есть http-клиент). OpenAPI - это также то, на что вы можете обратить внимание, чтобы определить свой http api, а затем просто сгенерировать клиент.
  • Модуль сервера : Зависит от модуля API для реализации маршрутов с определенными DTO. И если вы определили клиента в API, проверьте, что ваша серверная реализация удовлетворяет этому.
  • Модуль Android : зависит от модуля API. Используйте клиент и смоделируйте его для тестирования.

Это немного похоже на Dependency Inversion Principal от SOLID. Вы определяете интерфейс обмена данными в отдельном модуле (модуль API). Кроме того, реализация и реализация (серверный модуль) и код более высокого уровня (модуль Android) зависят от его использования и реализации.

...