Делить объекты между акведуком и флаттером - PullRequest
0 голосов
/ 21 января 2019

Я использую акведук в качестве сервера, на котором я определил объект пользователя и расширил его, чтобы использовать OAuth:

class ManagedUser extends ManagedObject<_User> implements _User, ManagedAuthResourceOwner<_User>

После завершения работы над акведуком я начал работать над приложением флаттера и хотел также использовать объект ManagedUser в флаттере, поэтому я подумал о том, чтобы поместить его в отдельный проект.

Проблема, с которой я сталкиваюсь сейчас (во время развертывания), заключается в следующем:

ERROR:flutter/shell/common/shell.cc(184)] Dart Error: error: import of dart:mirrors with --enable-mirrors=false

Как я читаю здесь Ошибка дротика: ошибка: импорт дротика: зеркала с --enable-mirrors = false это потому, что флаттер не поддерживает части акведука (которые, к сожалению, мне нужны в моем общий проект для использования ManagedObject).

Так что я как бы застрял здесь. Какие у меня варианты? Мне действительно не нравится снова отображать все объекты на флаттер.

1 Ответ

0 голосов
/ 21 января 2019

Вы не сможете объединить Акведук и Флаттер в одном проекте - у них разные цели компиляции, и обе используют эти цели.

Общий подход заключается в использовании aqueduct document для создания документа OpenAPI из вашего кода, а затем с помощью генератора кода OpenAPI для создания кода на стороне клиента. Этот подход предпочтителен для совместного использования кода между сервером и клиентами. Код может быть разделен между браузером и мобильными целями. Рекомендуется избегать использования одного типа, который представляет собой определение объекта для базы данных, сервера и клиента. Тип клиента и отображение таблицы базы данных в конечном итоге будут иметь различия, которыми будет трудно управлять.

...