SuperAPI AI 工具集

relic-app-setup

部署与运维

查看项目

更新于 10-16 06:59

技能介绍

用途

relic-app-setup 用于引导一个 Relic Web 服务器:创建项目、配置 RelicApp、启动服务并启用热重载。适用于创建新的 Relic 项目、搭建服务器或进行应用初始化时。

环境要求

Relic 是一个 Dart Web 服务器框架,要求 Dart SDK 3.7 及以上版本。使用单个导入即可:package:relic/relic.dart。

安装

dart create -t console-full my_server
cd my_server
dart pub add relic

最小服务器示例

import 'package:relic/relic.dart';

Future main() async {
  final app = RelicApp()
    ..get('/hello/:name', (Request req) {
      final name = req.rawPathParameters[#name];
      return Response.ok(
        body: Body.fromString('Hello, $name!'),
      );
    })
    ..use('/', logRequests())
    ..fallback = respondWith(
      (_) => Response.notFound(
        body: Body.fromString('Not found'),
      ),
    );

  await app.serve();
}

服务选项

await app.serve(); // 默认 0.0.0.0:8080

await app.serve(
  address: InternetAddress.loopbackIPv4,
  port: 3000,
);

回退处理器

回退处理器处理不匹配任何路由的请求。默认返回带空主体的 404。

app.fallback = respondWith(
  (_) => Response.notFound(
    body: Body.fromString('Page not found'),
  ),
);

热重载

Relic 支持在不重启服务器的情况下热重载路由处理器。

IDE:在 Debug 模式下启动服务器。在 Dart 插件设置中启用 “Hot Reload On Save”(通常设置为 manual)。

CLI:

dart run --enable-vm-service bin/main.dart

当触发热重载时,RelicApp 会自动用最新的路由定义重新配置其内部路由器。对服务器状态或全局变量的更改可能仍需要完全重启。

适用场景与限制

适用于使用 Dart 构建 Web 服务器的初始化阶段,包括路由定义、监听地址配置和回退处理。限制方面:Relic 需要 Dart SDK 3.7 及以上版本;热重载主要作用于路由处理器,对服务器状态或全局变量的更改可能仍需完全重启。