Dart-Aqueduct框架开发(二)

834 阅读4分钟

1、简介

上篇文章中,我们学习了Aqueduct这个Dart服务器框架的核心概念和如何搭建环境,启动项目,这一节我们来学习一下 Aqueduct项目的整体结构项目配置如何编写我们的api接口

2、项目结构

配置编译工具我们一般以IDEA编程工具打开项目,在打开之前,我们需要添加 Dart开发插件,打开IDEA,然后选择 configure,找到Plugins

在弹出的界面中输入dart即可找到插件,然后就是安装了,我这里已经安装了,小伙伴可以点击之后等待一段时间,重启即可

然后我们可以选择Open,选中上一节中创建的 Aqueduct项目,打开之后可以先看看,当点击一个dart文件时,会出现下面的一个提示,我们选中Enable Dart support即可

  • 各文件介绍

 1 各文件介绍 2-| demo 3-| .dart_tool 自动生成的文件 4-| .idea 编译工具自动生成 5-| bin 6  -| main.dart 程序入口 7-| lib 8  -| channel.dart 通道 9  -| demo.dart 用于导包10-| test 编写测试用例11-| .gitignore git忽略文件用12-| .packages 运行pub get 会自动生成13-| .travis.yml 持续集成相关14-| analysis_options.yaml 静态分析相关15-| config.src.yaml 开发环境下的配置16-| config.yaml 正式环境下的配置17-| pubspec.lock 运行pub get 会自动生成18-| pubspec.yaml 程序的描述及依赖的插件包声明19-| README.md  Aqueduct的简单使用介绍

3.内容介绍

上述的文件看起来比较多,但我们只需要关注几个文件即可,那就是

  • bin/main.dart

 1import 'package:demo/demo.dart'; 2 3Future main() async { 4  final app = Application<DemoChannel>() 5      ..options.configurationFilePath = "config.yaml"//载入配置文件 6      ..options.port = 8888;//端口号 7 8  final count = Platform.numberOfProcessors ~/ 2;//启动的isolate数量 9  await app.start(numberOfInstances: count > 0 ? count : 1);//应用启动1011  print("Application started on port: ${app.options.port}.");12  print("Use Ctrl-C (SIGINT) to stop running the application.");13}
  • lib/channel.dart

 1import 'demo.dart'; 2 3class DemoChannel extends ApplicationChannel { 4  @override 5  Future prepare() async {//执行初始化任务的方法 6    logger.onRecord.listen((rec) => print("$rec ${rec.error ?? ""} ${rec.stackTrace ?? ""}"));//打印日志 7  } 8  @override 9  Controller get entryPoint {//定义路由、请求链接等,在启动期间调用1011    final router = Router();//路由对象12    router13      .route("/example") //声明一个路由,即请求地址,例如:http://127.0.0.1/example14      .linkFunction((request) async {//如果有用户请求,给他返回内容15        return Response.ok({"key": "value"});//ok即200的状态码,Response内封装了很多开箱即用的方法16      });1718    return router;19  }20}
  • config.yaml

1可以在此以yaml的格式声明环境,例如:数据库请求端口,账号,密码等
  • pubspec.yaml

 1name: demo #应用程序名 2description: An empty Aqueduct application. #应用程序介绍 3version: 0.0.1 #应用程序版本 4author: rhyme_lph <rhymelph@gmail.com> #应用程序作者 5 6# Dart sdk适用的版本范围 7environment: 8  sdk: ">=2.0.0 <3.0.0" 910# 依赖包,无论在哪个环境都用到11dependencies:12  aqueduct: ^3.0.01314# 只在开发环境下的依赖包15dev_dependencies:16  test: ^1.0.017  aqueduct_test: ^1.0.0

4、编写自己的接口

到这里,我们已经大致的了解了项目的结构,现在我们可以编写Aqueduct的第一个接口。在 lib/channel.dart下添加

 1class DemoChannel extends ApplicationChannel { 2  @override 3  Controller get entryPoint { 4//new 5    router.route('/hello') 6        .linkFunction((request) async { 7      return Response.ok({'data': 'Hello World'}); 8    }); 9    return router;10  }11//new 12}

现在我们可以输入aqueduct serve启动服务器,然后访问http://localhost:8888/hello即可

如果你跟我一样,恭喜你,成功的使用Aqueduct 框架编写了第一个接口,这一节的学习就到这里了,希望帮忙转发,让更多的小伙伴学习到这个语言和框架