يوفر Kroki واجهة برمجة تطبيقات موحدة لدعم blockdiag (blockdiag ، seqdiag ، actdiag ، nwdiag ، packetdiag ، rackdiag) ، bpmn ، bytefield ، c4 (مع plantuml) ، d2 ، dbml ، diagrams.net (التجريبي) ، ditaa ، erd ، Graphviz ، Mermaid ، Nomnoml ، Pikchr ، Plantuml ، SvgBob ، LimeT ، Umlet ، Vega ، Vega-Lite ، Wavedrom و Wireviz ... والمزيد في المستقبل!
يقدم هذا القسم برنامجًا تعليميًا أساسيًا لتقييم Kroki. تعليمات التثبيت الأكثر شمولاً في وثائق Kroki.
يستخدم Kroki خوارزمية بسيطة (deflate + base64) لتشفير الرسم التخطيطي الخاص بك في عنوان URL:
GET /plantuml/svg/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000
يمكنك أيضًا الاتصال بـ Kroki مع POST
:
بريد /
{
"diagram_source" : " Bob -> Alice : hello " ,
"diagram_type" : " plantuml " ,
"output_format" : " svg "
}
في هذه الحالة ، لا تحتاج إلى تشفير الرسم البياني الخاص بك.
من الممكن أيضًا إرسال الرسم البياني الخاص بك كنص عادي باستخدام رأس Content-Type
. سيتم تحديد تنسيق الإخراج باستخدام رأس Accept
وسيتم إرسال مصدر الرسم البياني كهيئة طلب:
post /plantuml
Accept: image/svg+xml
Content-Type: text/plain
Bob -> Alice : hello
يمكنك أيضًا تحديد تنسيق الإخراج في عنوان URL إذا كنت لا ترغب في إضافة رأس Accept
:
post /plantuml /svg
Content-Type: text/plain
Bob -> Alice : hello
ينطبق نفس المفهوم عند إرسال الرسم البياني مثل JSON:
post /plantuml /svg
{
"diagram_source" : " Bob -> Alice : hello "
}
Kroki لديه بنية معيارية:
خادم الويب Java (مدعوم من Vert.x ) يعمل كبوابة. تم تصميم خادم Kroki باستخدام Maven.
واجهة برمجة تطبيقات Java صغيرة أعلى Umlet (mini) لإنشاء مخططات.
A Node.js CLI على رأس مكتبة Diagram Nomnoml .
A node.js cli على رأس مكتبة مخطط Vega . يدعم أيضا فيغا لايت القواعد النحوية.
خادم ويب مصاحب مكتوب في JavaScript (مدعوم من Micro ) يوفر مكتبة مخطط حورية البحر .
خادم ويب مصاحب مكتوب في JavaScript (مدعوم بواسطة Micro ) يوفر مكتبة مخطط BPMN-JS .
A node.js cli على رأس مكتبة مخطط Bytefield-SVG .
A node.js cli أعلى مكتبة مخطط موجه .
خادم ويب مصاحب مكتوب في JavaScript (مدعوم من Micro ) يوفر Excalidraw .
خادم ويب مصاحب مكتوب في JavaScript (مدعوم من Micro ) يوفر Diagrams.net .
الخطوة الأولى هي بناء المشروع باستخدام Maven:
$ make BuildServer
لبناء جميع صور Docker ، استخدم الأمر التالي:
$ sudo جعل builddockerimages
ملحوظة | قد لا تكون هناك حاجة إلى sudo اعتمادًا على توزيعك وتكوين docker . |
بمجرد إنشاء صور Docker ، يمكنك تشغيل Kroki باستخدام docker
:
$ Docker Run -D -P 8000: 8000 Yuzutech/Kroki
إذا كنت ترغب في استخدام إحدى مكتبات المخططات التالية ، فستحتاج أيضًا إلى بدء تشغيل الحاوية المصاحبة المقابلة:
حورية البحر
BPMN
excaledraw
Diagrams.net
يمكنك استخدام 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 -corm -d -d