1 个不稳定版本
0.1.0 | 2023年2月18日 |
---|
#368 in 可视化
48KB
1K SLoC
Diagramer
一个基于 Rust🦀 和 rocket🚀 的序列图生成 webservice。
特性
- 快速简单的 JSON-API
- SVG 导出
- Mermaid 图表代码导出
- 小型前端,支持实时更新
- 客户端实现
使用方法
直接启动 diagramer
cargo run
或通过以下方式构建发布版本:
cargo build --release
API 使用
使用客户端
客户端库在模块 diagramer::client
中实现。
use diagramer::client::Client;
let client = Client::new();
let session = client.new_session("https://127.0.0.1:8000").await;
println!("New session url {}", session.session_url());
session.add_link("a", "b", Some("Request")).await;
session.add_link("b", "c", Some("Forward")).await;
session.add_link("c", "a", Some("Response")).await;
基于网络的压力测试也使用了客户端实现。
直接 HTTP 访问
创建一个新会话
curl -XPOST 'http://127.0.0.1:8000/api/new-session'
使用会话 ID 和会话的 URI
{
"id": "2888964795923373081",
"uri": "/api/session/2888964795923373081"
}
从 a
添加到 b
的链接,标签为 with a label
curl -XPOST -H 'Content-Type: application/json' 'http://127.0.0.1:8000/api/session/2888964795923373081/links' -d '{"from":"a", "to":"b", "label":"with a label"}'
获取会话的 JSON 表示形式
curl 'http://127.0.0.1:8000/api/session/2888964795923373081'
{
"id": 2888964795923373000,
"links": [
{
"timestamp": 1676679312120,
"from": "a",
"to": "b",
"label": "with a label",
"id": 2
}
],
"last_link": 2,
"mermaid_url": "/api/session/2888964795923373081/mermaid",
"svg_url": "/api/session/2888964795923373081/svg"
}
依赖项
~30–68MB
~1M SLoC