rest - 如何使用 Aqueduct 创建到 MySQL 的持久存储?

标签 rest dart aqueduct

我正在尝试使用 dataModel 和 persistenceStore 创建上下文...请按照下面的代码使用 PostgreSQL:

  @override
  Future prepare() async {
    logger.onRecord.listen((rec) => print("$rec ${rec.error ?? ""} ${rec.stackTrace ?? ""}"));

    final dataModel = ManagedDataModel.fromCurrentMirrorSystem();
    final persistentStore = PostgreSQLPersistentStore.fromConnectionInfo(
      "heroes_user", "password", "localhost", 5432, "heroes");

    context = ManagedContext(dataModel, persistentStore);
  }

我想使用 MySQL 而不是 PostgreSQL,我没有找到任何使用它的教程。

最佳答案

以下是使用另一种类型的数据库的一般过程:

  • 查找 MySQL Dart 包。 (也许this one)
  • 创建一个扩展 Aqueduct 的类 PersistentStore .
  • 实现 MySQL 的抽象方法。 (作为引用,请参阅 PostgreSQLPersistentStore 在 PostgreSQL 中如何执行此操作。)
  • 如果您使用身份验证,请对 AuthServerDelegate 执行相同的操作。 (作为引用,请参阅 ManagedAuthDelegate 在 PostgreSQL 中如何执行此操作。)
  • 创建大量测试来检查您的工作。

我的建议:

  • 使用默认的 PostgreSQL 实现。与您自己实现 MySQL 的所有内容相比,学习所需的时间要少得多。默认实现可能也经过了更好的测试。使用 ORM,您甚至不需要使用太多原始 PostgreSQL 代码,这本身与原始 MySQL 代码没有显着差异。
  • 您还可以查看 Angel服务器,它似乎比 Aqueduct 更加模块化,但您仍然需要实现自己的 MySQL 服务。请参阅this .
  • 在不选择框架或数据库的情况下进行尽可能多的开发。作为干净架构的原则,这些都是细节。如果可能的话,将它们抽象出来。请参阅Clean architecture for the rest of us .

关于rest - 如何使用 Aqueduct 创建到 MySQL 的持久存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55861092/

相关文章:

ios - 从 Swift 函数中的异步调用返回数据

flutter - 在Dart中使用get修剪@required变量

postgresql - Aqueduct 数据库升级无法连接到数据库

logging - 创建一个中间件 Controller 以处理Dart中对Aqueduct的所有请求

php - 如何编写 REST API?

rest - REST API 范式位于哪个 OSI 层?

multithreading - Flutter Dart : How can we achieve multithreading like python or java in dart

dart - Aqueduct -如何在没有后端用户ID的情况下保存客户端数据

rest - Firefox 附加 RESTclient - 如何输入 POST 参数?

dart - 将值从登录表单传递到仪表板