Dart Shelf框架安装与使用指南
shelfWeb server middleware for Dart项目地址:https://gitcode.com/gh_mirrors/sh/shelf
目录结构及介绍
当您克隆Dart的Shelf项目仓库到本地后,其基本的目录结构如下:
.
├── CHANGELOG.md # 修改历史记录
├── CONTRIBUTING.md # 贡献者指导手册
├── LICENSE # 开源许可证
├── README.md # 项目描述与快速入门
├── bin # 包含可执行脚本文件的目录
│ └── shelf.dart # 主要运行脚本
├── lib # 包含库代码的主要目录
│ ├── _shelf_internal.dart # 内部辅助函数和类
│ ├── handlers.dart # 请求处理程序定义
│ ├── middleware.dart # 中间件逻辑
│ ├── router.dart # 路由系统相关实现
│ ├── shelf.dart # 主要模块接口
│ └── ... # 更多相关功能代码
├── test # 单元测试代码所在目录
│ ├── integration_test.dart # 集成测试脚本
│ └── unit_test.dart # 单元测试脚本
└── .gitignore # git忽略规则文件
bin
目录
这个目录下包含了项目的可执行文件shelf.dart
,这是启动服务器的基本命令入口。
lib
目录
lib
是整个Shelf库的核心部分,它包含了所有用于HTTP服务的库代码,其中包括但不限于请求处理、中间件管理以及路由机制等关键组件。
test
目录
存放各种单元和集成测试代码,以确保库的功能正确性。
启动文件介绍
Shelf提供了一个简单的Web服务器来快速搭建HTTP应用,主要通过bin/shelf.dart
文件进行初始化和启动操作。该文件包含了如何创建一个基础服务器实例并监听特定端口的例子,您可以在此基础上扩展自己的应用程序。
启动示例:
import 'package:shelf/shelf.dart';
import 'package:shelf/shelf_io.dart' as io;
void main() async {
var handler = const Pipeline().addMiddleware(logRequests()).addHandler(_echoRequest);
final server = await io.serve(handler, 'localhost', 8080);
print('Server listening on port ${server.port}');
}
Response _echoRequest(Request request) {
return Response.ok('Request for "${request.url}"');
}
通过上述代码片段,可以启动一个简单的回显请求服务器,在本地8080端口监听并响应所有传入的HTTP请求。
配置文件介绍
Shelf本身不强制要求使用外部配置文件,但你可以选择使用环境变量或构建自定义的配置系统来控制你的应用程序行为。例如,改变服务器监听地址和端口可以通过以下方式设置:
import 'dart:io';
final ip = InternetAddress.loopbackIPv4;
var handler = /* ... */;
final server = await io.serve(handler, ip.host, int.parse(ENV['PORT'] ?? '8080'));
这里我们检查了PORT
环境变量的存在与否,默认情况下使用8080端口,但如果设置了此环境变量,则使用指定值作为端口号。 以上就是基于Dart Shel
shelfWeb server middleware for Dart项目地址:https://gitcode.com/gh_mirrors/sh/shelf