Kroki provides a unified API with support for BlockDiag (BlockDiag, SeqDiag, ActDiag, NwDiag, PacketDiag, RackDiag), BPMN, Bytefield, C4 (with PlantUML), D2, DBML, Diagrams.net (experimental), Ditaa, Erd, Excalidraw, Graphviz,Mermaid,Nomnoml,Pikchr,Plantuml,Svgbob,象征子,Umlet,Vega,Vega,Vega-Lite,WaveDrom和Wireviz…以及更多!
本节提供了评估Kroki的基本教程。 Kroki文档中有更全面的安装说明。
Kroki使用简单的算法(Deflate + Base64)在URL中编码您的图:
GET /plantuml/svg/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000
您也可以通过POST
致电Kroki:
邮政 /
{
"diagram_source" : " Bob -> Alice : hello " ,
"diagram_type" : " plantuml " ,
"output_format" : " svg "
}
在这种情况下,您无需编码图表。
也可以使用Content-Type
标头将您的图作为纯文本发送。输出格式将使用Accept
标头指定,并且图源将作为请求主体发送:
邮政 /plantuml
Accept: image/svg+xml
Content-Type: text/plain
Bob -> Alice : hello
如果您不想添加Accept
标头,也可以在URL中定义输出格式:
邮政 /plantuml /svg
Content-Type: text/plain
Bob -> Alice : hello
将图表发送为JSON时,同样的概念也适用:
邮政 /plantuml /svg
{
"diagram_source" : " Bob -> Alice : hello "
}
Kroki具有模块化架构:
用作网关的Java Web服务器(由Vert.x提供动力)。 Kroki Server是使用Maven构建的。
在Umlet (Mini)顶部的小Java API生成图。
Nomnoml图库顶部的Node.js CLI。
VEGA图库顶部的Node.js CLI。还支持Vega-Lite简洁语法。
用JavaScript(由Micro提供动力)编写的伴侣Web服务器提供了美人鱼图库。
提供BPMN-JS图库的JavaScript(由Micro启动)编写的伴侣Web服务器。
BYTEFIELD-SVG图库的顶部的Node.js CLI。
Wavedrom图库顶部的Node.js CLI。
用JavaScript(由Micro提供动力)编写的伴随Web服务器,该服务器提供了Excalidraw 。
用JavaScript(由Micro启动)编写的伴随Web服务器提供了图表。
第一步是使用Maven构建项目:
$制造制造商
要构建所有Docker图像,请使用以下命令:
$ sudo制造构建图
笔记 | 根据您的分发和docker 配置,可能不需要sudo 。 |
建造Docker图像后,您可以使用docker
运行Kroki:
$ Docker Run -D -P 8000:8000 Yuzutech/Kroki
如果要使用以下图库之一,那么您还需要启动相应的伴侣容器:
美人鱼
BPMN
Excalidraw
图
您可以使用docker-compose
运行多个容器:
services :
core :
image : yuzutech/kroki
environment :
- KROKI_MERMAID_HOST=mermaid
- KROKI_BPMN_HOST=bpmn
- KROKI_EXCALIDRAW_HOST=excalidraw
ports :
- " 8000:8000 "
mermaid :
image : yuzutech/kroki-mermaid
expose :
- " 8002 "
bpmn :
image : yuzutech/kroki-bpmn
expose :
- " 8003 "
excalidraw :
image : yuzutech/kroki-excalidraw
expose :
- " 8004 "
# experimental!
diagramsnet :
image : yuzutech/kroki-diagramsnet
expose :
- " 8005 "
$ docker -compose -d