声明:本文首发于微信订阅号:Dart客栈,微信后台回复05162获取本篇源码
文章为原创,如需转载请注明出处,并告知作者,谢谢!
1.简介
上篇文章中,我们学习了Aqueduct
这个Dart服务器框架的核心概念和如何搭建环境,启动项目,今天我们来学习以下Aqueduct
项目的整体结构、项目配置及如何编写我们的api
接口
2.项目结构
- 配置编译工具
我们一般以IDEA
编程工具打开项目,在打开之前,我们需要添加Dart
开发插件,打开IDEA
,然后选择configure
,找到Plugins
在弹出的界面中输入dart
即可找到插件,然后就是安装了,我这里已经安装了,小伙伴可以点击之后等待一段时间,重启即可
然后我们可以选择Open
,选中上一节中创建的Aqueduct
项目,打开之后可以先看看,当点击一个dart文件时,会出现下面的一个提示,我们选中Enable Dart support
即可
-
各文件介绍
各文件介绍
-| demo
-| .dart_tool 自动生成的文件
-| .idea 编译工具自动生成
-| bin
-| main.dart 程序入口
-| lib
-| channel.dart 通道
-| demo.dart 用于导包
-| test 编写测试用例
-| .gitignore git忽略文件用
-| .packages 运行pub get 会自动生成
-| .travis.yml 持续集成相关
-| analysis_options.yaml 静态分析相关
-| config.src.yaml 开发环境下的配置
-| config.yaml 正式环境下的配置
-| pubspec.lock 运行pub get 会自动生成
-| pubspec.yaml 程序的描述及依赖的插件包声明
-| README.md Aqueduct的简单使用介绍
3.内容介绍
上述的文件看起来比较多,但我们只需要关注几个文件即可,那就是
bin/main.dart
import 'package:demo/demo.dart';
Future main() async {
final app = Application<DemoChannel>()
..options.configurationFilePath = "config.yaml"//载入配置文件
..options.port = 8888;//端口号
final count = Platform.numberOfProcessors ~/ 2;//启动的isolate数量
await app.start(numberOfInstances: count > 0 ? count : 1);//应用启动
print("Application started on port: ${app.options.port}.");
print("Use Ctrl-C (SIGINT) to stop running the application.");
}
lib/channel.dart
import 'demo.dart';
class DemoChannel extends ApplicationChannel {
@override
Future prepare() async {//执行初始化任务的方法
logger.onRecord.listen((rec) => print("$rec ${rec.error ?? ""} ${rec.stackTrace ?? ""}"));//打印日志
}
@override
Controller get entryPoint {//定义路由、请求链接等,在启动期间调用
final router = Router();//路由对象
router
.route("/example") //声明一个路由,即请求地址,例如:http://127.0.0.1/example
.linkFunction((request) async {//如果有用户请求,给他返回内容
return Response.ok({"key": "value"});//ok即200的状态码,Response内封装了很多开箱即用的方法
});
return router;
}
}
config.yaml
可以在此以yaml的格式声明环境,例如:数据库请求端口,账号,密码等
pubspec.yaml
name: demo #应用程序名
description: An empty Aqueduct application. #应用程序介绍
version: 0.0.1 #应用程序版本
author: rhyme_lph <rhymelph@gmail.com> #应用程序作者
# Dart sdk适用的版本范围
environment:
sdk: ">=2.0.0 <3.0.0"
# 依赖包,无论在哪个环境都用到
dependencies:
aqueduct: ^3.0.0
# 只在开发环境下的依赖包
dev_dependencies:
test: ^1.0.0
aqueduct_test: ^1.0.0
4. 编写自己的接口
到这里,我们已经大致的了解了项目的结构,现在我们可以编写Aqueduct
的第一个接口。
在lib/channel.dart
下添加
class DemoChannel extends ApplicationChannel {
@override
Controller get entryPoint {
//new
router.route('/hello')
.linkFunction((request) async {
return Response.ok({'data': 'Hello World'});
});
return router;
}
//new
}
现在我们可以输入aqueduct serve
启动服务器,然后访问http://localhost:8888/hello即可
如果你跟我一样,👏恭喜你,成功的编写了第一个
Aqueduct
接口,今天的学习就到这里了,希望帮忙转发,让更多的小伙伴学习到这个语言和框架
下一篇