Kroki menyediakan API terpadu dengan dukungan untuk blockdiag (blockdiag, seqdiag, actdiag, nwdiag, packetdiag, rackdiag), bpmn, bytefield, c4 (dengan plantuml), d2, dbml, diagrams.net (eksperimental), ditaa, erdr, dbml, diagrams.net (eksperimental), ditaa, ditaa, er, Graphviz, Mermaid, Nomnoml, Pikchr, Plantuml, Svgbob, Simbolator, Umlet, Vega, Vega-Lite, Wavedrom dan Wireviz ... dan banyak lagi yang akan datang!
Bagian ini menawarkan tutorial dasar untuk mengevaluasi Kroki. Instruksi instalasi yang lebih komprehensif ada dalam dokumentasi Kroki.
Kroki menggunakan algoritma sederhana (Deflate + Base64) untuk menyandikan diagram Anda di URL:
GET /plantuml/svg/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000
Anda juga dapat menelepon Kroki dengan POST
:
POS /
{
"diagram_source" : " Bob -> Alice : hello " ,
"diagram_type" : " plantuml " ,
"output_format" : " svg "
}
Dalam hal ini, Anda tidak perlu menyandikan diagram Anda.
Dimungkinkan juga untuk mengirim diagram Anda sebagai teks biasa menggunakan header Content-Type
. Format output akan ditentukan menggunakan header Accept
dan sumber diagram akan dikirim sebagai badan permintaan:
Post /Plantuml
Accept: image/svg+xml
Content-Type: text/plain
Bob -> Alice : hello
Anda juga dapat menentukan format output di URL jika Anda tidak ingin menambahkan header Accept
:
POST /PLANTUML /SVG
Content-Type: text/plain
Bob -> Alice : hello
Konsep yang sama berlaku saat mengirim diagram sebagai JSON:
POST /PLANTUML /SVG
{
"diagram_source" : " Bob -> Alice : hello "
}
Kroki memiliki arsitektur modular:
Server web Java (ditenagai oleh vert.x ) yang bertindak sebagai gateway. Server Kroki dibangun menggunakan Maven.
Java API kecil di atas Umlet (Mini) untuk menghasilkan diagram.
A node.js Cli di atas pustaka diagram Nomnoml .
A node.js Cli di atas Perpustakaan Diagram Vega . Juga mendukung tata bahasa ringkas Vega-Lite.
Server web pendamping yang ditulis dalam JavaScript (ditenagai oleh mikro ) yang menyediakan perpustakaan diagram putri duyung .
Server web pendamping yang ditulis dalam JavaScript (ditenagai oleh mikro ) yang menyediakan pustaka diagram BPMN-JS .
A Node.js Cli di atas pustaka diagram Bytefield-SVG .
A node.js cli di atas pustaka diagram Wavedrom .
Server web pendamping yang ditulis dalam JavaScript (ditenagai oleh mikro ) yang menyediakan excalidraw .
Server web pendamping yang ditulis dalam JavaScript (ditenagai oleh mikro ) yang menyediakan diagrams.net .
Langkah pertama adalah membangun proyek menggunakan Maven:
$ Make Buildserver
Untuk membangun semua gambar Docker, gunakan perintah berikut:
$ sudo membuat builddockerimages
Catatan | sudo mungkin tidak diperlukan tergantung pada distribusi dan konfigurasi docker Anda. |
Setelah gambar Docker dibangun, Anda dapat menjalankan Kroki menggunakan docker
:
$ Docker Run -D -P 8000: 8000 Yuzutech/Kroki
Jika Anda ingin menggunakan salah satu dari perpustakaan diagram berikut maka Anda juga harus memulai wadah pendamping yang sesuai:
Putri duyung
Bpmn
Excalidraw
Diagrams.net
Anda dapat menggunakan docker-compose
untuk menjalankan beberapa kontainer:
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