在 aqueduct 和 flutter 之间共享对象

Share objects between aqueduct and flutter

我将 aqueduct 用作​​服务器,我在其中定义了一个用户对象并将其扩展为使用 OAuth:

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

完成 aqueduct 的工作后,我开始研究 flutter 应用程序,并想在 flutter 中也使用 ManagedUser 对象,这就是为什么我考虑将其放入一个单独的项目中。

我现在(在部署期间)面临的问题如下:

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

正如我在此处阅读的那样 Dart Error: error: import of dart:mirrors with --enable-mirrors=false 这是因为 flutter 似乎不支持渡槽的某些部分(不幸的是,我需要在我的共享项目中使用 ManagedObject)。

所以我有点被困在这里了。我有哪些选择?我真的不喜欢在 flutter 方面再次映射所有对象。

您将无法在同一个项目中结合使用 Aqueduct 和 Flutter - 它们具有不同的编译目标,并且都利用了这些目标。

一般方法是使用 aqueduct document 从您的代码创建 OpenAPI 文档,然后使用 OpenAPI 代码生成器构建您的客户端代码。这种方法比在服务器和客户端之间共享代码更可取。代码可以在浏览器和移动目标之间共享。最好避免使用一种类型来表示对象的数据库、服务器和客户端定义。客户端类型和数据库 table 映射最终会产生难以管理的差异。