54 lines
2.4 KiB
Markdown
54 lines
2.4 KiB
Markdown
# 示例
|
|
|
|
最小项目用 `dever new <新目录>`。下列项目可复制到新目录后修改,均包含源码、测试和配置。
|
|
|
|
| 场景 | 项目 | 用例筛选 |
|
|
| --- | --- | --- |
|
|
| 集合、分句 | [collections](../assets/examples/collections/) | content.article |
|
|
| HTTP、REST、身份核验 | [http-rest](../assets/examples/http-rest/) | content.article.title |
|
|
| 持久任务 | [jobs](../assets/examples/jobs/) | report.archive.queued |
|
|
| Python/JS/Go 与 Port fake | [external-lib](../assets/examples/external-lib/) | document.markup |
|
|
| 普通二进制与 Port fake | [command](../assets/examples/command/) | document.tool.version |
|
|
|
|
```sh
|
|
dever fmt <root> --check
|
|
dever check <root>
|
|
dever test <root> --filter <表中筛选> --timeout-ms 5000
|
|
```
|
|
|
|
测试不会启动真实第三方程序或连接部署数据库。教程片段链接到这些项目的源码,校验脚本检查片段、签名及项目;运行验证使用当前编译器。
|
|
|
|
## HTTP 与 REST
|
|
|
|
http-rest 包含匿名健康检查和受保护 Article 资源:
|
|
|
|
- GET /system/health/admin/status/ready 返回成功包裹的 true。
|
|
- /content/article/admin/entries 提供 REST;用 dever api 导出具体方法和输入输出。
|
|
- verify 检查会话、用户、租户和成员关系;未提供注册、密码登录或签发凭据。
|
|
|
|
实际部署需配置密钥、身份数据、租户库和 Owner。角色由核心管理,不能把 fake 测试当作认证或部署验收。操作规则见 [应用](application.md)。
|
|
|
|
## 持久 Job
|
|
|
|
jobs 通过 report.archive.submit 入队,key 去重,Job 在事务中写入归档记录。测试用临时 SQLite、独立时钟和 drainJobs 验证队列,不启动常驻 worker。
|
|
|
|
真实 CMD 会写配置的数据库;无命令参数时才按 runtime.mode 启动服务:
|
|
|
|
```sh
|
|
dever run <root> -- report.archive.submit '{"input":{"key":"report-2026-10","title":"Monthly report"}}'
|
|
```
|
|
|
|
任务至少执行一次,外部副作用仍须业务幂等。执行身份和权限规则见 [应用](application.md)。
|
|
|
|
## 外部程序
|
|
|
|
external-lib 附三种生态的处理函数和 fake,不附真实依赖锁与运行资源,见 [接入说明](external-lib.md)。
|
|
|
|
command 不附 bin/tool;真实运行前需提供目标架构的 ELF 及所需库。fake 只验证 App 与 Port 的接口。
|
|
|
|
collections 可直接运行,无需数据库:
|
|
|
|
```sh
|
|
dever run <root> -- content.article.summarize '{"articles":[{"title":" First ","published":true}]}'
|
|
```
|