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, Symbolator, Umlet, Vega, Vega-Lite, Wavedrom und Wirviz… und mehr kommen!
Dieser Abschnitt bietet ein grundlegendes Tutorial zur Bewertung von Kroki. Umfangreichere Installationsanweisungen finden Sie in der Kroki -Dokumentation.
Kroki verwendet einen einfachen Algorithmus (Deflate + Base64), um Ihr Diagramm in der URL zu codieren:
GET /plantuml/svg/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000
Sie können Kroki auch mit POST
anrufen:
POST /
{
"diagram_source" : " Bob -> Alice : hello " ,
"diagram_type" : " plantuml " ,
"output_format" : " svg "
}
In diesem Fall müssen Sie Ihr Diagramm nicht codieren.
Es ist auch möglich, Ihr Diagramm mit dem Header Content-Type
als einfacher Text zu senden. Das Ausgangsformat wird unter Verwendung des Headers Accept
und die Diagrammquelle wird als Anforderungsbehörde gesendet:
Post /Plantuml
Accept: image/svg+xml
Content-Type: text/plain
Bob -> Alice : hello
Sie können das Ausgangsformat in der URL auch definieren, wenn Sie keinen Accept
-Header hinzufügen möchten:
Post /Plantuml /SVG
Content-Type: text/plain
Bob -> Alice : hello
Das gleiche Konzept gilt beim Senden des Diagramms als JSON:
Post /Plantuml /SVG
{
"diagram_source" : " Bob -> Alice : hello "
}
Kroki hat eine modulare Architektur:
Ein Java -Webserver (betrieben von vert.x ), das als Gateway fungiert. Kroki Server wird mit Maven erstellt.
Eine winzige Java -API auf Umlet (Mini), um Diagramme zu erzeugen.
A node.js cli oben in der Nomnoml Diagrammbibliothek.
A node.js cli oben in der Vega Diagrammbibliothek. Unterstützt auch Vega-Lite Cucise Grammatar.
Ein in JavaScript geschriebener Begleit -Webserver (Powered by Micro ), der die Bibliothek der Meerjungfrau -Diagramm liefert.
Ein in JavaScript geschriebener Begleit-Webserver (Powered by Micro ), der die BPMN-JS- Diagrammbibliothek bietet.
A node.js cli oben in der Bytefield-SVG- Diagrammbibliothek.
A node.js cli oben in der Wavedrom Diagrammbibliothek.
Ein in JavaScript geschriebener Begleit -Webserver (Powered by Micro ), der Excalidraw bietet.
Ein in JavaScript geschriebener Begleit -Webserver (Powered by Micro ), der Diagramme.net bietet.
Der erste Schritt besteht darin, das Projekt mit Maven zu erstellen:
$ make BuildServer
Verwenden Sie den folgenden Befehl, um alle Docker -Bilder zu erstellen:
$ sudo machen Builddockerimages
Notiz | sudo ist möglicherweise nicht je nach Konfiguration Ihrer Verteilung und docker erforderlich. |
Sobald die Docker -Bilder erstellt wurden, können Sie Kroki mit docker
ausführen:
$ Docker Run -d -p 8000: 8000 Yuzutech/Kroki
Wenn Sie eine der folgenden Diagrammbibliotheken verwenden möchten, müssen Sie auch den entsprechenden Begleitbehälter starten:
Meerjungfrau
Bpmn
Excalidraw
Diagramme.net
Sie können docker-compose
verwenden, um mehrere Container auszuführen:
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 up -d