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